0

ソース ファイルから Java プログラムの遠心性結合 (オブジェクト間の結合) を計算する必要があります。

私はすでに Eclipse で jdt を使用して抽象構文ツリーを抽出していますが、別のクラスからクラスの依存関係を直接抽出できるかどうかはわかりません。

メトリック プラグインを使用できません。

ご協力いただきありがとうございます。

4

1 に答える 1

1

を使用しASTVisitorて、AST 内の関連するノードを確認できます。resolveBinding()その後、またはresolveTypeBinding()を使用して依存関係を抽出できます。(これを機能させるには、解析時に「resolveBindings」をオンにする必要があります。)

私はこれをテストしていませんが、この例はあなたにアイデアを与えるはずです:

public static IType[] findDependencies(ASTNode node) {
    final Set<IType> result = new HashSet<IType>();
    node.accept(new ASTVisitor() {
        @Override
        public boolean visit(SimpleName node) {
            ITypeBinding typeBinding = node.resolveTypeBinding();
            if (typeBinding == null)
                return false;
            IJavaElement element = typeBinding.getJavaElement();
            if (element != null && element instanceof IType) {
                result.add((IType)element);
            }
            return false;
        }
    });
    return result.toArray(new IType[result.size()]);
}
于 2014-02-11T10:16:08.453 に答える