.class文件, 编译后就被忽略了)
@Override: 让编译器检查是否实现了覆写@SuppressWarnings: 告诉编译器忽略此处代码产生的警告.class文件使用的注解.
.class文件, 加载结束后并不会存在内存中.@PostConstruct, 在调用构造方法后自动调用public @interface Report {
int type() default 0;
String level() default "info";
String value() default "";
}
可以修饰其他注解的注解: 元注解.
@Target: 标识元注解用于哪些位置
@Target(ElementType.METHOD)@Target({ElementType.METHOD, ElementType.FIELD})@Retention: 定义了注解的声明周期
@Retention(RetentionPolicy.RUNTIME)@Repeatable: 定义是否可以重复.
@Inherited: 定义子类是否可以继承父类定义的Annotation
@interface定义注解value()@Target和@Retention@Retention一般设置为RUNTIME: 因为我们自定义的注解通常要求在运行时读取@Inherited和@Repeatable@Retention的配置
SOURCE: 在编译器丢掉, 我们只使用不编写CLASS: 仅保存在class文件中, 不会被加载到JVM, 涉及到class加载, 我们很少用RUNTIME: 会被加载到JVM, 在程序运行期间可以被读取. 经常使用Person.class.isAnnotationPresent(Report.class)Person.class.getAnnotation(Report.class)@Test标记的测试方法@Target(ElementType.TYPE)什么意思?原文:https://www.cnblogs.com/zhangrunhao/p/12586698.html