java获取注解属性

钟逸 20 2024-04-26 02:47:29

java获取注解的值

很多朋友都想知道java怎么获取注解的值?下面就一起来了解一下吧~

1、定义一个注解,用于给全局变量field字段赋值

package com.haha.study.annotation.value; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** description: 定义一个注解,用于给 全局变量 field 字段 赋值,并使用反射取值。 

* 特别提醒: @Rentention(RetentionPolicy.RUNTIME) 时,注解才会被jvm加载,才能使用反射获取。* @version v1.0* @author w* @date 2018年8月1日下午2:37:40*/@Documented@Retention(RetentionPolicy.RUNTIME)@Target(value=ElementType.FIELD) public @interface Fields { int sort() default 0 ; String value() ;}

2、创建一个普通的类,使用@ConsAnnotation、@Fields注解

package com.haha.study.annotation.value;/*** description: 创建一个普通的类,使用 @ConsAnnotation、@Fields 注解。* @version v1.0* @author w* @date 2018年8月1日下午2:50:23*/@ConsAnnotation(request = { "hello","world","annotation!" }) public class User {@Fields("中华人民共和国") private String userName; public String getUserName() { return userName;} public void setUserName(String userName) { this.userName = userName;}}

3、针对 com.haha.study.annotation.value.User类使用注解的测试

package com.haha.study.annotation.value; import java.lang.reflect.Field; import java.util.Arrays;/*** description: 针对 com.haha.study.annotation.value.User 类使用注解的测试* @version v1.0* @author w* @date 2018年8月1日下午2:37:13*/ public class ValueTest { public static void main(String[] args) throws Exception { User user = new User();// 1、 获取 User类上的注解 @ConsAnnotation ConsAnnotation anno = user.getClass().getAnnotation(ConsAnnotation.class); String[] arr = anno.request(); System.out.println(Arrays.toString(arr)); // [hello, world, annotation!]// 2、 获取User类中 private String userName; 变量上的注解 @Field Field f = user.getClass().getDeclaredField("userName"); Fields anno2 = f.getAnnotation(Fields.class); user.setUserName(anno2.value()); System.out.println(user.getUserName()); // 中华人民共和国}}

上一篇:dnf国庆套礼包内容
下一篇:怪物x联盟360礼包
相关文章
返回顶部小火箭