我正在尝试使用Eclipse AST从MethodInvocation对象中提取方法的类型。我正在使用resolveTypeBinding,但它始终返回null,我将AST设置为:
final ASTParser parser = ASTParser.newParser(AST.JLS8);
parser.setBindingsRecovery(true);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setSource(allProject.toCharArray());
final CompilationUnit cu = (CompilationUnit) parser.createAST(null);
InfoDetector infoDetector = new InfoDetector(cu);
cu.accept(infoDetector);
InfoDetector只是我重写访问方法的类。变量allProject是项目中所有.java文件内容的解析字符串。
嗯,这行不通。解析器种类在一个完整的编译单元(一个源文件)中达到最高。它希望解析的绑定可以通过让它读取通过与环境相关的方法设置的其他源文件和类文件来实现。