1

我正在创建一个实用程序来检测代码库中未使用的方法。通过使用下面的代码,我能够成功找到未使用的方法(没有引用)。但我还需要删除这些未使用的方法。请让我知道是否可以通过 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
         }
     }
}
4

2 回答 2

2

关于 IMethod 的 Javadoc,它有一个来自 ISourceManipulation 的方法 delete()。

看:

http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/core/IMethod.html

于 2012-04-23T13:15:24.423 回答
0

通常使用 ASTRewrite 来修改源。您可以查看“删除未使用的方法”快速修复的实现 -

org.eclipse.jdt.internal.coreext.fix.UnusedCodeFix.RemoveUnusedMemberOperation.removeUnusedName(CompilationUnitRewrite, SimpleName)

您也可以只使用 JDT 中的清理来执行此操作,请参阅“源 > 清理 > 不必要的代码 > 删除未使用的私有成员”

于 2012-04-25T14:38:55.717 回答