从jdk5开始,java增加了对元数据的支持。也就是Annotation,注解。其实是代码里的特殊标记,这些标记在编译,类加载,运行时被读取,并执行相应的处理。
注解是一个接口,程序可以通过反射来获取指定程序元素dejava.lang.annotation.Annotation对象,通过对象来取得注解里的元数据。
注解能被用啦为程序元素(类,方法,成员变量等)设置元数据。
基本注解
@Override
@Deprecated:Java 9改进了该注解,该注解支持since、forRemoval两个属性。
@SuppressWarnings
@SafeVarargs:Java 9增强了该注解,允许该注解修饰私有实例方法
@FunctionalInterface
这5个第四个是java7新增,最后一个是java8新增。都在java.lang包下。
@Override用来指定方法覆盖。
@Deprecated用于表示某个程序元素已过时。当其他程序使用已过时的类,方法时,编译器会给出警告。java9增加了since表示从那个版本指定为过时,forRemoveal是boolean类型,true代表未来会删除。
@SuppressWarnings 指示该注解修饰的程序元素及该元素的所有子元素,取消显示指定的编译器警告。
@SafeVarargs用于抑制“堆污染”警告。
@Functionallnterface用来指定某个接口必须是函数式接口。
JDK的元注解
@Retention用于指定被修饰的注解可以保留多长时间。,包含一个类型为value的成员变量。只有value为RetentionPolicy.RUNTIME时,JVm可以获取注解信息,程序可以通过反射获取注解信息
使用@Target修饰注解定义,用于指定被修饰的注解能用于修饰哪些线程单元。
使用@Documented用于指定被该元注解修饰的注解类将被javadoc工具提取成文档。
使用@Inherited指定它修饰的注解将具有继承性。
自定义注解
原文:https://www.cnblogs.com/tomato190/p/12441893.html