获取定义 TypeElement 的元素?
Get Element where TypeElement is defined in?
我有以下 class:
public class Start extends PlacePresenter {
@NameToken("startPage")
public interface MyProxy extends ProxyPlace {
}
}
在注释处理器中,我得到了用 @NameToken 注释的元素,它是 MyProxy。
@Override
public boolean process(Set<? extends TypeElement> annotations,
RoundEnvironment roundEnv) {
for (Element annotatedElement : roundEnv.getElementsAnnotatedWith(NameToken.class)) {
TypeElement typeElement = (TypeElement) annotatedElement;
// typeElement is MyProxy
}
}
如何获取 class MyProxy 中定义的元素,即 Start
?
包含 class 的内容将由调用 annotatedElement.getEnclosingElement()
返回的 Element
表示:
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
for (Element annotatedElement : roundEnv.getElementsAnnotatedWith(NameToken.class)) {
System.out.println(annotatedElement.getEnclosingElement()); // prints "Start"
}
return true;
}
我有以下 class:
public class Start extends PlacePresenter {
@NameToken("startPage")
public interface MyProxy extends ProxyPlace {
}
}
在注释处理器中,我得到了用 @NameToken 注释的元素,它是 MyProxy。
@Override
public boolean process(Set<? extends TypeElement> annotations,
RoundEnvironment roundEnv) {
for (Element annotatedElement : roundEnv.getElementsAnnotatedWith(NameToken.class)) {
TypeElement typeElement = (TypeElement) annotatedElement;
// typeElement is MyProxy
}
}
如何获取 class MyProxy 中定义的元素,即 Start
?
包含 class 的内容将由调用 annotatedElement.getEnclosingElement()
返回的 Element
表示:
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
for (Element annotatedElement : roundEnv.getElementsAnnotatedWith(NameToken.class)) {
System.out.println(annotatedElement.getEnclosingElement()); // prints "Start"
}
return true;
}