0
我需要從源文件計算Java程序的傳出耦合(對象之間的耦合)。在Java中計算傳出耦合
我已經在Eclipse中使用jdt抽取了抽象語法樹,但我不確定是否可以直接從另一個類中提取類依賴關係。
我無法使用任何公制插件。
感謝您的幫助。
我需要從源文件計算Java程序的傳出耦合(對象之間的耦合)。在Java中計算傳出耦合
我已經在Eclipse中使用jdt抽取了抽象語法樹,但我不確定是否可以直接從另一個類中提取類依賴關係。
我無法使用任何公制插件。
感謝您的幫助。
您可以使用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()]);
}