Я хотел бы получить все имена переменных во всех методах файла java. Пример, как Person. java содержит
class Person {
private String firstName;
private String lastName;
public static void main() {
String test = "test";
Person p1 = new Person();
p1.setName("John");
}
public void setName(String name) {
this.firstName = name;
}
}
Я хотел бы иметь возможность распечатать все объявленные переменные. Я пытался использовать javaparser для их получения. Тем не менее, я могу получить только переменные, объявленные в классе, который
firstName
lastName
Я хочу иметь возможность получить все переменные, объявленные в методе main *
firstName
lastName
test
Мой метод javaparser
public static void getVariables(String inputFilePath) {
try {
CompilationUnit cu = StaticJavaParser.parse(new File(inputFilePath));
cu.findAll(FieldDeclaration.class).forEach(field -> {
field.getVariables().forEach(variable -> {
System.out.println(variable.getName());
variable.getInitializer().ifPresent(initValue ->
System.out.println(initValue.toString()));
});
});
} catch (FileNotFoundException fe) {
System.out.println(fe.getMessage());
} catch (IOException e){
System.out.println(e.getMessage());
}
}
Решено
Следуя совету Юджина, я могу теперь получить все переменные
public static void getVariables(String inputFilePath) {
try {
CompilationUnit cu = StaticJavaParser.parse(new File(inputFilePath));
cu.findAll(VariableDeclarator.class).forEach(variable -> {
System.out.println(variable);
});
} catch (FileNotFoundException fe) {
} catch (IOException e) {
}
}