如何使用java-parser和java-symbol-solver推断函数的所有参数的类型?

时间:2017-01-08 17:12:33

标签: java parsing binding javaparser

假设我在Class A中有以下pkg1Class B中有pkg2calculate() {{1}中定义了函数pkg2如下:

class B

我想确定参数B.calculate(A a1, A a2); a1的类型。例如,a2pkg1.A pkg1.A属于class A

我主要担心的是,我不想构建项目,我想做静态分析(我有所有的源文件)。

我知道使用Eclipse JDT推断参数类型的方法但是如何使用javaparser(https://github.com/javaparser/javaparser)和javasymbolsolver(https://github.com/javaparser/javasymbolsolver)来实现。

在Eclipse JDT中,我刚刚设置了源文件'解析器环境中的路径,它工作。但是在javasymbolsolver中,即使我在typesolver中添加了源文件,它也无法正常工作。

pkg1

1 个答案:

答案 0 :(得分:0)

您还需要指定依赖项的路径。 CombinedTypeSolver不仅应该知道在哪里找到源文件,还要知道所有的jar文件。

这样的事情应该有效:

  

combinedTypeSolver.add(new JarTypeSolver(new File(" libs / mylib.jar")));

来源:我是JavaSymbolSolver的主要人物