注解

理解: 添加在成员/类/方法/方法参数的上面
     可以用来规范写法(不符合注解规范的会出现编译异常),
     也可以通过设置注解属性,使用注解的位置必须初始化属性值,可以解析出属性值使用
     
格式:属性前面默认public abstract,和接口一样
​
元注解: 作用在注解上的注解(限制注解)
    1: @Target  说明注解的使用位置
    2: @Retention   说明注解的作用域
​
例:  
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Book {
        String value();
    }
​
解析注解:用来查找某些定义特定注解的方法.类.属性等
​
例:
    //获取文件对象,并创建本类对象
    Class<People> clazz = People.class;
    People people = clazz.newInstance();
​
    //判断方法中是否含有注解(使用isAnnotationPresent()方法),获取想要找到的方法.
    Method[] methods = clazz.getDeclaredMethods();
    for (Method method : methods) {
        if (method.isAnnotationPresent(MyAnnot.class)) {
            //设置取消java语言访问检查(取消之后可以使用private修饰的方法)
            method.setAccessible(true);
            method.invoke(people);
            
            //获取定义在方法上的注解
            MyAnnot annotation = method.getAnnotation(MyAnnot.class);
            //获取注解属性
            annotation.属性();
        }
    }
 

 

posted @ 2020-06-17 09:34  木木a  阅读(57)  评论(0)    收藏  举报