特别推荐这篇文章: https://blog.csdn.net/briblue/article/details/73824058
注解 |
声明 | public @interface TestAnnotation { } | 运用 | @TestAnnotation public class Test { } | 元注解 | 注解的注解 (注意,这些是修饰注解的注解) 元标签有.
@Retention | 注解存活的时间 | - RetentionPolicy.SOURCE 注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视。 - RetentionPolicy.CLASS 注解只被保留到编译进行的时候,它并不会被加载到 JVM 中。 - RetentionPolicy.RUNTIME 注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们 @Retention(RetentionPolicy.RUNTIME) public @interface TestAnnotation { } | @Documented | 文档 | | @Target | | 想用在什么地方 ElementType.ANNOTATION_TYPE 可以给一个注解进行注解 ElementType.CONSTRUCTOR 可以给构造方法进行注解 ElementType.FIELD 可以给属性进行注解 ElementType.LOCAL_VARIABLE 可以给局部变量进行注解 ElementType.METHOD 可以给方法进行注解 ElementType.PACKAGE 可以给一个包进行注解 ElementType.PARAMETER 可以给一个方法内的参数进行注解 ElementType.TYPE 可以给一个类型进行注解,比如类、接口、枚举 | @Inherited | | 如果子类中没有定义标签,那么子类就会有这个类的标签。 | @Repeatable | | |
| 注解的属性 | public @interface TestAnnotation { public int id() default -1; public String msg() default "Hi"; } | 常用注解 | @depreecated. @Override @SuppressWarnings阻止warning | | |
|