美文网首页
Android 利用 APT 技术在编译期生成代码

Android 利用 APT 技术在编译期生成代码

作者: jacky123 | 来源:发表于2016-11-03 23:16 被阅读62次

    参考资料


    前言

    APT(Annotation Processing Tool
    的简称),可以在代码编译期解析注解,并且生成新的 Java 文件,减少手动的代码输入。现在有很多主流库都用上了 APT,比如 Dagger2, ButterKnife, EventBus3 等,我们要紧跟潮流,与时俱进呐! (ง •̀_•́)ง

    普及一下ButterKnife支持的注解
    1 .使用最多的Bind.class

    @Retention(CLASS) @Target(FIELD)
    public @interface Bind {
      /** View ID to which the field will be bound. */
      int[] value();
    }
    

    2.BindBool BindColor BindDimen BindDrawable BindInt BindString,这些使用比较少。
    比如:

    @Bindbool(R.bool.is_tablet)
    boolean isTable;
    

    Element

    源代码中的每一部分都是一个特定的元素类型,分别代表了包、类、方法等等,具体看 Demo。

    package com.example;
    
    public class Foo { // TypeElement
    
        private int a; // VariableElement
        private Foo other; // VariableElement
    
        public Foo() {} // ExecuteableElement
    
        public void setA( // ExecutableElement
                int newA // TypeElement
        ) 
    }
    

    这些 Element
    元素,相当于 XML 中的 DOM 树,可以通过一个元素去访问它的父元素或者子元素。

    element.getEnclosingElement();// 获取父元素
    element.getEnclosedElements();// 获取子元素
    

    相关文章

      网友评论

          本文标题:Android 利用 APT 技术在编译期生成代码

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