Cuando utilice el patrón de visitante para visitar un nodo FieldDeclaration, es posible que desee obtener el nombre de la variable que contiene el nodo. Es natural pensar en un método llamado «getName ()», pero este método no existe en la clase FieldDeclaration.
El siguiente código muestra cómo puede obtener el nombre del campo o el nombre de la variable en una clase. En primer lugar, necesitamos obtener todos los fragmentos utilizando el método «fragments ()» y luego obtener el primer fragmento que devuelve mediante «get (0)». Sabemos que el primer elemento sería VariableDeclarationFragment, pero primero debemos verificar su tipo por razones de seguridad. Entonces podemos usar el método «getName ()» de VariableDeclarationFragment para obtener el nombre de la variable declarada.
final CompilationUnit parse = parse(unit); parse.accept(new ASTVisitor() { public boolean visit(MethodDeclaration md){ System.out.println("-------------method: " + md.getName()); return false; } public boolean visit(FieldDeclaration fd){ Object o = fd.fragments().get(0); if(o instanceof VariableDeclarationFragment){ String s = ((VariableDeclarationFragment) o).getName().toString(); if(s.toUpperCase().equals(s)) System.out.println("-------------field: " + s); } return false; } }); |