组件化之二

组件化之二,第1张

前言

有志者,事竟成

APT技术 APT是什么?

APT(Annotation Processing Tool)

是一种处理注释的工具,它对源代码文件进行检测找出其中的Annotation,根据注解自动生成代码,如果想要自定义的注解处理器能够正常运行,必须要通过APT工具来进行处理。
也可以这样理解,只有通过声明APT工具后,程序在编译期间自定义注解解释器才能执行。
通俗理解:根据规则,帮我们生成代码、生成类文件

APT中用到的重要元素

ackageElement :表示一个包程序元素。提供对有关包及其成员的信息的访问
ExecutableElement :表示某个类或接口的方法、构造方法或初始化程序(静态或实例)
TypeElement:表示一个类或接口程序元素。提供对有关类型及其成员的信息的访问。
VariableElement:表示一个字段、enum常量、方法或构造方法参数、局部变量或异常参数

APT中用到API
  1. getEnclosedElements() 返回该元素直接包含的子元素
  2. getEnclosingElement() 返回包含该element的父element,与上一个方法相反
  3. getKind () 返回element的类型,判断是哪种element
  4. getModifierso() 获取修饰关键字,入public static final等关键字
  5. getSimpleName()获取名字,不带包名
  6. getQualifiedName () 获取全名,如果是类的话,包含完整的包名路径
  7. getParameters() 获取方法的参数元素,每个元素是一个VariableElement
  8. getReturnType() 获取方法元素的返回值
  9. getConstantValue() 如果属性变量被final修饰,则可以使用该方法获取它的值
高级用法JavaPoet JavaPoet是什么?

JavaPoet是square推出的开源java代码生成框架,提供JavaApi生成.java源文件这个框架功能非常实用,也是我们习惯的Java面向对象OOP语法,可以很方便的使用它根据注解生成对应代码,通过这种自动化生成代码的方式, 可以让我们用更加简洁优雅的方式要替代繁琐冗杂的重复工作

JavaPoet相关
类对象说明
MethodSpec代表一个构造函数或方法声明
TypeSpec代表一个类,接口,或者枚举声明
FieldSpec代表一个成员变量,一个字段声明
JavaFile包含一个顶级类的Java文件
ParameterSpec用来创建参数
AnnotationSpec用来创建注解
ClassName用来包装一个类
TypeName类型,如在添加返回值类型是使用 TypeName. voID
S 字 符 串 , 如 : S字符串,如: S:s, ” hello”
T 类 、 接 口 , 如 : T类、接口,如: T:T, MainActivity
高级用法JavaPoet

JavaPoet到底是什么?

​答:oop思想方式:优点(加入oop思想)缺点(不习惯,倒序)


JavaPoet真的比传统方式好吗?

答:并不是这样的,如果复杂的代码生成,反而效率低下

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/719488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存