使用lombok后,体验到编译期注解的好处,它不仅能够节省代码量,最重要使我们的代码整洁,易维护。下面让我们详细了解下编译期注解的使用以及调试。
目录
1.Element
javax.lang.model.element.Element 程序元素接口,可以是package,class,method,field等
public interface Element extends AnnotatedConstruct {
/*
* 返回此元素定义的类型
*/
TypeMirror asType();
/**
* 返回此元素所属的种类
*/
ElementKind getKind();
/**
* 返回此元素的修饰符,不包括注解
* @return Set<Modifier>,为啥返回是个集合,因为一个元素的修饰符有多个,见下面Modifier类
*/
Set<Modifier> getModifiers();
/*
* 返回此元素的简单(非限定)名称
*/
Name getSimpleName();
/*
* 返回最内层元素
* 如果此元素的声明在词法上直接封装在另一个元素的声明中,则返回另一个元素.
* 如果这个元素是顶层类型,则返回其包.
* 如果这个元素是一个包,则返回 null.
* 如果这个元素是一个参数类型,则返回此参数类型的泛型元素.
*/
Element getEnclosingElement();
/*
* 返回直接出现在此元素上的注解,要获得继承的注解,请使用 getAllAnnotationMirrors
*/
List<? extends AnnotationMirror> getAnnotationMirrors();
/*
* 返回指定类型的此元素的注解
*/
<A extends Annotation> A getAnnotation(Class<A> var1);
}
Element子类
子类 | 释义 |
---|---|
ExecutableElement | 表示类或接口的方法,构造函数或初始化器(静态或实例),包括注释类型元素。 |
PackageElement | 表示包程序元素。?提供有关该软件包及其成员的信息的访问。 |
TypeElement | 表示一个类或接口程序元素。 提供关于类型及其成员的信息的访问。 注意,枚举类型是一种类,注释类型是一种接口。 |
TypeParameterElement | 表示通用类,接口,方法或构造函数元素的正式类型参数。 一个类型参数声明一个TypeVariable。 |
VariableElement | 表示一个字段, 枚举恒定,方法或构造参数,局部变量,变量资源,或异常参数。 |
各Element所代表的元素 如下图