... Я бы хотел, чтобы API напрямую изменил файл Java / создал его модифицированную копию. Есть ли способ сделать это?
JavaParser - это API, который позволяет читать в файлах Java, изменять их и получать результаты в виде строки.
В частности, JavaParser анализирует файл и создает AST (абстрактное синтаксическое дерево). Затем вы можете изменить JavaParser AST, представляющий ваш исходный код, используя API, и получить строковое представление AST.
У меня уже есть файл .java, и я хотел бы добавить несколько строк кода в метод внутри него.
Вот пример использования JavaParser для добавления строки в конец тела метода и вывода результата:
class MyClass {
public static void someMethod() {
/* ... */
// Lines will be added here:
}
public static void main(String[] args) {
String newStatement = "System.out.println(\"Hello world!\");"
File myClassSourceFile = new File("MyClass.java");
CompilationUnit cu = JavaParser.parse(myClassSourceFile);
ClassOrInterfaceDeclaration classDeclaration = cu.getClassByName("MyClass").get();
MethodDeclaration method = classDeclaration.getMethodsByName().get(0);
method.getBody().get().addStatement(newStatement);
// Print out the resulting Java source code.
System.out.println(cu.toString());
}
}
CompilationUnit - Из javadoc JavaParser, «Этот класс представляет всю единицу компиляции. Каждый файл Java обозначает единицу компиляции.»
ПРИМЕЧАНИЕ. В своем коде вы захотите заменить вызовы Option.get () соответствующей необязательной обработкой.