次のClass A
in がpkg1
あり、Class B
inpkg2
と関数calculate()
が次のように定義されpkg2
class B
ているとします。
B.calculate(A a1, A a2);
a1
パラメータとの型を特定したいa2
。たとえば、ここでは でpkg1.A
あり、pkg1.A
asclass A
は に属しpkg1
ます。
私の主な関心事は、プロジェクトをビルドしたくない、静的解析をしたい (すべてのソース ファイルを持っている) ことです。
Eclipse JDT を使用してパラメーターの型を推測する方法は知っていますが、javaparser ( https://github.com/javaparser/javaparser ) と javasymbolsolver ( https://github.com/javaparser/javasymbolsolver ) を使用してそれを行うにはどうすればよいですか。
Eclipse JDT では、パーサー環境でソース ファイルのパスを設定したところ、機能しました。しかし、javasymbolsolver では、typesolver にソース ファイルを追加しても機能しません。
CombinedTypeSolver combinedTypeSolver = new CombinedTypeSolver();
combinedTypeSolver.add(new JavaParserTypeSolver("path to the sourcefiles"));
JavaParserFacade j=JavaParserFacade.get(combinedTypeSolver);
SymbolReference<MethodDeclaration> ref = j.solve((MethodCallExpr) n);