文章目录
1. APT (Annotation Processing Tool)
是一种处理注释的工具,它对源代码文件进行检测并找出其中的Annotation
,根据注解自动生成代码
如果想要自定义的注解处理器能够正常运行,必须要通过 APT 工具来处理
也可以这样理解,只有通过声明 APT 工具后,程序在编译期间自定义注解处理器才能正常运行
简单理解:根据规则,帮我们生成代码、生成类文件
2. 结构体语言
eg: html 也是一种结构体语言
<html>
<body>
<div>...</div>
</body>
</html>
对于 Java 文件来说,它同样也是一种结构体语言:
package com.york.butterknife.bindinglibrary; //PackageElement 包元素/节点
public class Main { //TypeElement 类元素/节点
private int value; //VariableElement 属性元素/节点
public Main(){ //ExecuteableElement 方法元素/节点
}
}
2.1 PackageElement
表示一个包程序元素。提供对有关包及其成员的信息的访问
2.2 ExecuteableElement
表示某个类或接口的方法。提供对有关类型及其成员的信息的访问
2.3 TypeElement
表示一个类或接口元素。提供对有关类型及其成员的信息的访问
2.4 VariableElement
表示一个字段、enum 常量、方法或构造方法参数、局部变量或异常参数
2.5 需要掌握的 API
属性名 | |
---|---|
getEnclosedElements() | 返回该元素直接包含的子元素,eg: 包节点下就是类节点 |
getEnclosingElement() | 返回该Element的父element,与上一个方法相反,eg: 类节点上就是包节点 |
getKind() | 返回 element 类型,判断是哪种 element |
getModifiers() | 获取修饰关键字,如 public static final … |
getSimpleName() | 获取名字,不带包名 |
getQualifiedName() | 获取全名,如果是类的话,包含完整的包名路径 |
getParameters() | 获取方法的参数元素,每个元素是一个 VariableElement |
getReturnType() | 获取方法元素的返回值 |
getConstantValue() | 如果属性元素被 final 修饰,则可以使用该方法获取它的值 |