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()); }

  • 新手如何参加云购
  • vue.js中的循环与判断
  • 如何使用动态设置HTML5中的canvas宽度和高度
  • windows平台下fortran编程实现求最小值
  • Linux下通过setup配置网络过程
  • 热门搜索
    关于网络安全的手抄报 漫游语文世界手抄报 手抄报 春节 新学期新气象手抄报图片 八一建军节手抄报 小学生元宵节手抄报 我的2035年手抄报图片 冠状病毒手抄报 新学期新征程手抄报 新学期手抄报内容简短