maven 依赖
<dependencies>
<dependency>
<groupId></groupId>
<artifactId>javaparser-symbol-solver-core</artifactId>
<version>3.6.5</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>javaparser-core</artifactId>
<version>3.6.5</version>
</dependency>
</dependencies>
public List<FieldsData> getFieldsDataList() {
FileInputStream in = null;
try {
in = new FileInputStream(filePath);
CompilationUnit cu = (in);
String mainClass = (0).getName().asString();
NodeList<ImportDeclaration> imports = ();
if (imports != null) {
for (int i = 0; i < (); i++) {
((i).getNameAsString());
}
}
//("imports:" + importName);
for (TypeDeclaration typeDec : ()) {
List<BodyDeclaration> members = ();
if (members != null) {
for (BodyDeclaration member : members) {
parserBodyDeclaration((0).getName().asString(), member);
}
}
}
} catch (FileNotFoundException e) {
();
} finally {
if (in != null) {
try {
();
} catch (IOException e) {
();
}
}
}
return fieldsDataList;
}
public void parserBodyDeclaration(String className, BodyDeclaration member) {
if (member instanceof FieldDeclaration) {
FieldDeclaration field = (FieldDeclaration) member;
// NodeList annotations = ();
// if (annotations != null && () > 0) {
// ("annotations:" + (0));//注解
// } else {
// ("annotations is empty");
// }
// ("matamodel:" + ()); //Core10000101In
// ("comment:" + ().orElse(null)); 注释
// ("class: " + className + ",name: " + (0).getName().asString() +
// ",type:" + ().asString());
String elementType = ().asString();
for (int i = 0; i < (); i++) {
if ((i).endsWith(elementType)) {
elementType = (i);
break;
}
}
(new FieldsData((0).getName().asString(),
elementType, className));
}
if (member instanceof ClassOrInterfaceDeclaration) {
ClassOrInterfaceDeclaration field = (ClassOrInterfaceDeclaration) member;
// NodeList<AnnotationExpr> annotations = ();
// if (annotations != null && () > 0) {
// ("class annotaions:" + (0).getName());
// }
SimpleName name = ();
String classNameNew = className + "." + ();
NodeList<BodyDeclaration<?>> members2 = ();
if (members2 == null) {
return;
}
for (BodyDeclaration item : members2) {
parserBodyDeclaration(classNameNew, item);
}
}
}
public class FieldsData {
private String name;
private String typeName;
private String className;
public FieldsData(String name, String typeName, String className) {
= name;
= typeName;
= className;
}
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
= typeName;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
= className;
}
@Override
public String toString() {
return "FieldsData{" +
"className='" + className + '\'' +
", name='" + name + '\'' +
", typeName='" + typeName + '\'' +
'}';
}
}