Javaparser: как аннотировать существующие классы?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Javaparser: как аннотировать существующие классы?

Сообщение Anonymous »

Я пытаюсь добавить к классу собственную аннотацию. У меня есть простой класс (Foo) и ClassVisitor, которые добавляют аннотацию к существующему классу.

Код: Выделить всё

public class Foo{

public static void main(String[] args) {
SourceRoot sourceRoot = new SourceRoot(Path.of(".\"));
CompilationUnit cu = sourceRoot.parse("", "MyFile.java);
ClassVisitor cv = new ClassVisitor();
cu.accept(cv, null);
}
}

class ClassVisitor extends VoidVisitorAdapter {

private final String MY_ANNOTATION = "@myAnnotation";

@Override
public void visit(ClassOrInterfaceDeclaration cid, Void arg) {
super.visit(cid, arg);
boolean isAnnotated = false;
for (Node node : cid.getAnnotations()){
if (MY_ANNOTATION == node.toString()) {
isAnnotated = true;
break;
}
}
if (isAnnotated == false) {
cid.addAnnotation(MY_ANNOTATION); // error happens here
}
}
}
При выполнении кода появляется следующая ошибка:

Исключение в потоке «main»
com.github.javaparser.ParseProblemException: обнаружен неожиданный
токен: "@" "@"
в строке 1, столбец 1.
Ожидал одно из:< /p>

Код: Выделить всё

"enum"
"exports"
"module"
"open"
"opens"
"provides"
"record"
"requires"
"strictfp"
"to"
"transitive"
"uses"
"with"
"yield"



Подробнее здесь: https://stackoverflow.com/questions/717 ... ng-classes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»