APT技术 APT是什么?有志者,事竟成
APT中用到的重要元素APT(Annotation Processing Tool)
是一种处理注释的工具,它对源代码文件进行检测找出其中的Annotation,根据注解自动生成代码,如果想要自定义的注解处理器能够正常运行,必须要通过APT工具来进行处理。
也可以这样理解,只有通过声明APT工具后,程序在编译期间自定义注解解释器才能执行。
通俗理解:根据规则,帮我们生成代码、生成类文件
APT中用到APIackageElement :表示一个包程序元素。提供对有关包及其成员的信息的访问
ExecutableElement :表示某个类或接口的方法、构造方法或初始化程序(静态或实例)
TypeElement:表示一个类或接口程序元素。提供对有关类型及其成员的信息的访问。
VariableElement:表示一个字段、enum常量、方法或构造方法参数、局部变量或异常参数
- getEnclosedElements() 返回该元素直接包含的子元素
- getEnclosingElement() 返回包含该element的父element,与上一个方法相反
- getKind () 返回element的类型,判断是哪种element
- getModifierso() 获取修饰关键字,入public static final等关键字
- getSimpleName()获取名字,不带包名
- getQualifiedName () 获取全名,如果是类的话,包含完整的包名路径
- getParameters() 获取方法的参数元素,每个元素是一个VariableElement
- getReturnType() 获取方法元素的返回值
- getConstantValue() 如果属性变量被final修饰,则可以使用该方法获取它的值
JavaPoet相关JavaPoet是square推出的开源java代码生成框架,提供JavaApi生成.java源文件这个框架功能非常实用,也是我们习惯的Java面向对象OOP语法,可以很方便的使用它根据注解生成对应代码,通过这种自动化生成代码的方式, 可以让我们用更加简洁优雅的方式要替代繁琐冗杂的重复工作
类对象 | 说明 |
---|---|
MethodSpec | 代表一个构造函数或方法声明 |
TypeSpec | 代表一个类,接口,或者枚举声明 |
FieldSpec | 代表一个成员变量,一个字段声明 |
JavaFile | 包含一个顶级类的Java文件 |
ParameterSpec | 用来创建参数 |
AnnotationSpec | 用来创建注解 |
ClassName | 用来包装一个类 |
TypeName | 类型,如在添加返回值类型是使用 TypeName. voID |
S 字 符 串 , 如 : S字符串,如: S字符串,如:s, ” hello” | |
T 类 、 接 口 , 如 : T类、接口,如: T类、接口,如:T, MainActivity |
JavaPoet到底是什么?
答:oop思想方式:优点(加入oop思想)缺点(不习惯,倒序)
JavaPoet真的比传统方式好吗?
答:并不是这样的,如果复杂的代码生成,反而效率低下
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)