使用JDT删除方法

时间:2012-04-23 12:52:53

标签: java eclipse-jdt

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

  

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

您也可以使用JDT清理来执行此操作,请参阅'来源&gt;清理&gt;不必要的代码&gt;删除未使用的私人成员