zoukankan      html  css  js  c++  java
  • java注解和反射的结合使用

    首先反射注解,那么保留策略必须是Runtime,也就是@Retention(RetentionPolicy.RUNTIME)

    ①定义一个注解类

    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.FIELD})
    public @interface MyAnnotation {
        int value();
    }

    ②在定义一个类使用注解类

    public class MyBean {
        @MyAnnotation(20)
        private int value;
        @Override
        public String toString() {
            return String.valueOf(value);
        }
    }

    ③在main方法里面反射注解

    public static void main(String[] args) {
            try {
                Field field = MyBean.class.getDeclaredField("value");//获取成员变量value
                field.setAccessible(true);//将value设置成可访问的
                if(field.isAnnotationPresent(MyAnnotation.class)){//判断成员变量是否有注解
                    MyAnnotation myAnnotation = field.getAnnotation(MyAnnotation.class);//获取定义在成员变量中的注解MyAnnotation
                    int value = myAnnotation.value();//获取定义在MyBean的MyAnnotation里面属性值
                    MyBean myBean=new MyBean();
                    field.setInt(myBean, value);//将注解的值20可以赋给成员变量value
                    System.out.println(myBean);//验证结果
                }
            } catch (Exception e) {
                e.printStackTrace();
            };
        }

    输出结果

  • 相关阅读:
    [微软认证]MCP问题解答
    邮件服务
    QueryString 整站过滤
    今天开始安卓的底层开发吧。
    所谓的回调函数
    UTF8 to unicode
    TCP/IP中的拥塞窗口控制机制
    (转)前端页面,页内锚定位分析
    远程连接Sql Server 2008 R2 命名实例
    字符编码研究
  • 原文地址:https://www.cnblogs.com/pig-brother/p/7282524.html
Copyright © 2011-2022 走看看