Я пытаюсь написать собственный обработчик Anntoation. Обработчик аннотации обрабатывает каждый файл класса во время компиляции для проверки аннотаций, Но как я могу получить класс, который он сейчас обрабатывает? Я могу получить имя класса только в следующих кодах.Обработчик аннотации - Как получить класс, который обрабатывает
public class AnnotationProcessor extends AbstractProcessor {
......
@Override
public boolean process(Set<? extends TypeElement> annotations,
RoundEnvironment roundEnv) {
Set<? extends Element> rootE=roundEnv.getRootElements();
for(Element e: rootE) {
if(e.getKind()==ElementKind.CLASS) {
String className= e.getSimpleName().toString();
processingEnv.getMessager().printMessage(javax.tools.Diagnostic.Kind.WARNING,className, e);
}
}
}
Выражаем вам за помощь: D – user1004413
Вы говорите: «... имеет гораздо больше информации о компилируемом классе, чем просто его имя», но как _do_ вы получаете имя класса? – Matthias
Имя класса будет в Element.getSimpleName() http://docs.oracle.com/javase/7/docs/api/javax/lang/model/element/Element.html#getSimpleName%28%29 –