我正在创建一个实用程序来检测代码库中未使用的方法。通过使用下面的代码,我能够成功找到未使用的方法(没有引用)。但我还需要删除这些未使用的方法。如果有可能通过JDT,请告诉我。
// Get all the type declaration of the class.
IType [] typeDeclarationList = unit.getTypes();
for (IType typeDeclaration : typeDeclarationList) {
// Get methods under each type declaration.
IMethod [] methodList = typeDeclaration.getMethods();
for (IMethod method : methodList) {
final List<String> referenceList = new ArrayList<String>();
// loop through the methods and check for each method.
String methodName = method.getElementName();
if (!method.isConstructor()) {
// Finds the references of the method and returns the references of the method.
JDTSearchProvider.searchMethodReference(referenceList, method, scope, iJavaProject);
}
if (referenceList.isEmpty()) {
// delete method
}
}
}
答案 0 :(得分:2)
关于IMethod的Javadoc,它有一个来自ISourceManipulation的方法delete()。
请参阅:
答案 1 :(得分:0)
通常ASTRewrite用于修改源代码。您可以查看“删除未使用的方法”快速修复的实现 -
org.eclipse.jdt.internal.corext.fix.UnusedCodeFix.RemoveUnusedMemberOperation.removeUnusedName(CompilationUnitRewrite, SimpleName)
您也可以使用JDT清理来执行此操作,请参阅'来源&gt;清理&gt;不必要的代码&gt;删除未使用的私人成员