1

i tried to get the inherited methods and fields from java source code but i have this problem :

i tried to find inherited methods and fields from each class in my file which contained java code source , the syntax is correct but i have some errors when executing the program

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

when i compile the whole code i have the following errors :

Exception in thread "main" java.lang.IllegalStateException: No data of this type found. Use containsData to check for this first.

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)
The Head Rush
  • 3,157
  • 2
  • 25
  • 45

0 Answers0