Skip to content

Instantly share code, notes, and snippets.

@matozoid
Created February 8, 2019 20:36
Show Gist options
  • Save matozoid/391ab7081e664934e763bae34e08705a to your computer and use it in GitHub Desktop.
Save matozoid/391ab7081e664934e763bae34e08705a to your computer and use it in GitHub Desktop.
Getting some information with JavaParser
import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.Modifier;
import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
import com.github.javaparser.ast.body.FieldDeclaration;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.body.VariableDeclarator;
import java.util.ArrayList;
import java.util.List;
public class FieldNames {
public static void main(String[] args) {
String s = "public class X{public int a, b; public void zzz(){}} class Y{String y;}";
CompilationUnit cu = JavaParser.parse(s);
List<ClassOrInterfaceDeclaration> classes = cu.findAll(ClassOrInterfaceDeclaration.class);
for (ClassOrInterfaceDeclaration coid : classes) {
String className = coid.getNameAsString();
System.out.println("class: " + className);
for (FieldDeclaration field : coid.getFields()) {
List<String> modifierNames = new ArrayList<>();
for (Modifier modifier : field.getModifiers()) {
modifierNames.add(modifier.getKeyword().asString());
}
List<String> variableNames = new ArrayList<>();
for (VariableDeclarator variable : field.getVariables()) {
variableNames.add(variable.getNameAsString());
}
System.out.println("field: " + modifierNames + variableNames);
}
for (MethodDeclaration method : coid.getMethods()) {
String methodName = method.getNameAsString();
List<String> modifierNames = new ArrayList<>();
for (Modifier modifier : method.getModifiers()) {
modifierNames.add(modifier.getKeyword().asString());
}
System.out.println("method: " + modifierNames + methodName);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment