я пытался получить унаследованные методы и поля из исходного кода Java
но у меня есть эта проблема:
Я пытался найти унаследованные методы и поля от каждого класса в моем файле, который содержал исходный код Java, синтаксис правильный, но у меня есть некоторые ошибки при выполнении программы
cu.accept(new VoidVisitorAdapter<Void>() {
public void visit(ClassOrInterfaceDeclaration cid, Void arg) {
super.visit(cid, arg);
cid.resolve().getAllFields().stream().forEach(af -> {
nmbre_attribus++;
});
cid.resolve().getDeclaredFields().stream().forEach(df -> {
Nmbre_attributs_déclarées++;
});
cid.resolve().getAllMethods().stream().forEach(am -> {
nmbre_methds++;
});
cid.resolve().getDeclaredMethods().stream().forEach(dm -> {
Nmbre_methodes_déclarées++;
});
}
}, null);
когда я компилирую весь код, у меня появляются следующие ошибки:
Исключение в потоке "main" java.lang.IllegalStateException: данные этого типа не найдены. Для того, чтобы проверить это, используйте containsData.
at com.github.javaparser.ast.Node.getData(Node.java:453)
at com.github.javaparser.ast.Node.lambda$7(Node.java:703)
at java.util.Optional.map(Unknown Source)
at com.github.javaparser.ast.Node.getSymbolResolver(Node.java:702)
at com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.resolve(ClassOrInterfaceDeclaration.java:276)
at Metriques.Heritage_Attributs$1.visit(Heritage_Attributs.java:66)
at Metriques.Heritage_Attributs$1.visit(Heritage_Attributs.java:1)
at com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.accept(ClassOrInterfaceDeclaration.java:103)
at com.github.javaparser.ast.visitor.VoidVisitorAdapter.lambda$31(VoidVisitorAdapter.java:154)
at java.util.ArrayList.forEach(Unknown Source)
at com.github.javaparser.ast.NodeList.forEach(NodeList.java:268)
at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:154)
at Metriques.Heritage_Attributs$1.visit(Heritage_Attributs.java:64)
at Metriques.Heritage_Attributs$1.visit(Heritage_Attributs.java:1)
at com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.accept(ClassOrInterfaceDeclaration.java:103)
at com.github.javaparser.ast.visitor.VoidVisitorAdapter.lambda$31(VoidVisitorAdapter.java:154)
at java.util.ArrayList.forEach(Unknown Source)
at com.github.javaparser.ast.NodeList.forEach(NodeList.java:268)
at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:154)
at Metriques.Heritage_Attributs$1.visit(Heritage_Attributs.java:64)
at Metriques.Heritage_Attributs$1.visit(Heritage_Attributs.java:1)
at com.github.javaparser.ast.body.ClassOrInterfaceDeclaration.accept(ClassOrInterfaceDeclaration.java:103)
at com.github.javaparser.ast.visitor.VoidVisitorAdapter.lambda$43(VoidVisitorAdapter.java:175)
at java.util.ArrayList.forEach(Unknown Source)
at com.github.javaparser.ast.NodeList.forEach(NodeList.java:268)
at com.github.javaparser.ast.visitor.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:175)
at com.github.javaparser.ast.CompilationUnit.accept(CompilationUnit.java:130)
at Metriques.Heritage_Attributs.main(Heritage_Attributs.java:61)