Obtener todos los nombres de las variables en los métodos

user3413646:

Me gustaría recuperar todos los nombres de las variables en todos los métodos de un archivo Java. Ejemplo Como un Person.java contiene

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;
    }

}

me gustaría ser capaz de imprimir todas las variables declaradas. He intentado usar javaparser para recuperarlos. Sin embargo, sólo puedo recuperar variables declaradas en la clase que es

firstName

lastName

Quiero ser capaz de recuperar todas las variables declaradas en el método principal, así

firstName
lastName
test

Mi método es 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());
    }

}

resuelto

Como siguiente sugerencia de Eugene, soy capaz de recuperar todas las variables ahora

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) {

    }
}
Eugene:

Usted está de paso FieldDeclaration.classen CompilationUnitel método () 's findAll. Así que, como se le preguntó, le consigue todos los campos declarados.

Si desea una lista de todas las variables declaradas, el uso VariableDeclarator.classde un mismo paquete - que te llevará a todos aquellos, incluidos los declarados como campos.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=292604&siteId=1
Recomendado
Clasificación