手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

JAVA注解 JAVA自定义注解

时间:2024-10-12 23:47:37

1、语法:@Target({ElementType.FIELD}) //作用目标@Retention(RetentionPolicy.RUNTIME) //保留@Inherited //允许子类继承,可以不加@Documented //注解应该被 javadoc工具记录,可以不加public @interface ChineseName { public String value();}

JAVA注解 JAVA自定义注解

2、作用目标ElementType.CONSTRUCTOR 构造方法声明ElementType.FIELD 字段声明ElementType.LOCAL_VARIABLE 局部变量申明ElementType.METHOD 方法声明ElementType.PACKAGE 包声明ElementType.PARAMETER 参数声明ElementType.TYPE 类接口

JAVA注解 JAVA自定义注解

3、保留RetentionPolicy.SOURCE 只在源码显示,编译时会丢弃RetentionPolicy.CLASS 编译时会记录到class中,运行时忽RetentionPolicy.RUNTIME 运行时存在,可以通过发射读取

JAVA注解 JAVA自定义注解

4、这里以注解作用目标在属性上,运行时存在

JAVA注解 JAVA自定义注解

5、新增一个Person实体,将注解放在name上

JAVA注解 JAVA自定义注解

6、通过反射获取注解值

JAVA注解 JAVA自定义注解

7、关键代码@Target({Element哌囿亡噱Type.FIELD})@Retention(RetentionPolicy.RUNTIME)public @interface 潮贾篡绐ChineseName { public String value();}测试方法@Test public void testName() throws Exception { Person person = new Person(); Class clazz = person.getClass(); Field field = clazz.getDeclaredField("name"); ChineseName annotation = field.getAnnotation(ChineseName.class); System.out.println(annotation.value()); }

© 手抄报圈