Java基础巩固之自定义注解

import java.lang.annotation.*;

/**
 * 

* 自定义注解 *

* 本质上就是一个interface继承了java.lang.anntation.Anntation *

* 元注解: * * @Target 描述注解作用的位置 ElementType.TYPE 可以作用于类 ElementType.METHOD 方法 ElementType.FIELD 成员变量上 * @Retention 注解保留阶段 SOURCE 不会编译到class文件,编译 CLASS, class文件存在与class 文件但不会运行 RUNTIME 运行中 会运行 * @Documented 是否抽取到API文档 * @Inherited 是否被子类继承 */ @Target(value = {ElementType.TYPE,ElementType.METHOD,ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited public @interface Anno { }

使用自定义注解

        //获取对象
        MyAnno myAnno = new MyAnno();
        //获取字节码文件
        Class aClass = myAnno.getClass();
        //获取所有方法
        Method[] methods = aClass.getMethods();
        //判断是否有自己定义的注解

        for (Method m : methods) {
            //判断是否有自己定义的注解
            if(m.isAnnotationPresent(Anno.class)){
                  
                  m.invoke(myAnnoTest);
            }
        }

 

你可能感兴趣的:(Java基础重新来过)