IJava-Quellcode-Analyse, Methodensignaturen mit vollständigen Typen findet
javaparser bin mit (https://github.com/javaparser/javaparser) und javasymbolsolver (https://github.com/javaparser/javasymbolsolver).
Java-Quellcode zu analysieren. Ich möchte einen Basisbericht aus einer .java-Datei erstellen, um die Methodensignaturen aufzulisten, und wäre nett, wenn sie die vollständigen Java-Typen enthalten würden.
so ist eine grundlegende Zusammenführung der javaparser 'Besuch' Demo und javasymbolsolver Demo, aber ich renne in die Wand.
Sprengung auf 'getType' Aufruf, mit
Exception in thread "main" java.lang.UnsupportedOperationException: com.github.javaparser.ast.type.ClassOrInterfaceType
at me.tomassetti.symbolsolver.javaparsermodel.JavaParserFacade.getTypeConcrete(JavaParserFacade.java:392)
Hier ist die (nicht funktionierenden) Code,
static CombinedTypeSolver combinedTypeSolver;
public static void main(String[] args) throws Exception {
combinedTypeSolver = new CombinedTypeSolver();
combinedTypeSolver.add(new JreTypeSolver());
combinedTypeSolver.add(new JarTypeSolver("C:/source.jar"));
combinedTypeSolver.add(new JavaParserTypeSolver(new File("C:/src")));
FileInputStream in = new FileInputStream("C:/src/source.java");
CompilationUnit cu = JavaParser.parse(in);
new MethodVisitor().visit(cu, null);
}
private static class MethodVisitor extends VoidVisitorAdapter<Void> {
public void visit(MethodDeclaration n, Void arg) {
Node node = n.getType();
System.out.println(node);
TypeUsage typeOfTheNode = JavaParserFacade.get(combinedTypeSolver).getType(node);
super.visit(n, arg);
}
}