注解

作者: 主音King | 来源:发表于2018-12-24 12:53 被阅读0次

    注解实现原理

    底层使用反射实现。申明注解类需要加 @interface 注解类里只支持基本类型、String以及枚举类型。

    @Target--注解用到的地方

    ANNOTATION_TYPE,//给注解注解(这貌似把自己不当类来看)
    ElementType.FIELD  //注解作用于变量
    ElementType.METHOD //注解作用于方法
    ElementType.PARAMETER //注解作用于参数
    ElementType.CONSTRUCTOR //注解作用于构造方法
    ElementType.LOCAL_VARIABLE //注解作用于局部变量
    ElementType.PACKAGE //注解作用于包
    

    Retention--运行状态

    SOURCE, //源码状态运行,
     CLASS, //编译类文件时运行
     RUNTIME //运行时运行
    

    运行时注解:运行时用反射,动态获取对象、属性、方法等。一般IOC框架,牺牲效率。Eventbus使用运行时注解。
    编译时注解:编译时进行额外操作。如ButterKnife自动生成辅助类,需要依赖apt,类继承AbstractProcessor,重写process方法。

    @Documented--生成说明文档

    是否会保存到javadoc文档中

    @Inherited--允许子类继承父类中的注解

    是否可以被继承,默认false

    相关文章

      网友评论

          本文标题:注解

          本文链接:https://www.haomeiwen.com/subject/vhaakqtx.html