概述
注解:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Cherry {
String value() default "default";
}
实体类:
@Data
public class Water {
private String name;
@Cherry
private Double price;
@Cherry(value = "test")
private String tag;
}
测试:
public class GetAnno {
public static void main(String[] args) throws IllegalAccessException {
Water water = new Water();
water.setPrice(100D);
water.setTag("促销");
//Class<?> clz = Water.class;
Class<?> clz = water.getClass();
Field[] declaredFields = clz.getDeclaredFields();
for (Field declaredField : declaredFields) {
Cherry annotation = declaredField.getAnnotation(Cherry.class);
if(annotation != null){
System.out.println(annotation);
declaredField.setAccessible(true);
if(declaredField.getType() == Double.class){
System.out.println(true);
}
System.out.println(declaredField.getType());
Object o = declaredField.get(water);
System.out.println(o.getClass());
System.out.println(o);
System.out.println("------------------------------");
}
}
}
}
输出:
@com.luo.project0109.test0908.Cherry(value=default)
true
class java.lang.Double
class java.lang.Double
100.0
------------------------------
@com.luo.project0109.test0908.Cherry(value=test)
class java.lang.String
class java.lang.String
促销
------------------------------
Process finished with exit code 0
最后
以上就是热心紫菜为你收集整理的java 反射获取指定注解修饰的field信息的全部内容,希望文章能够帮你解决java 反射获取指定注解修饰的field信息所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复