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.corext.fix.UnusedCodeFix.RemoveUnusedMemberOperation.removeUnusedName(CompilationUnitRewrite、SimpleName)

JDTからのクリーンアップを使用してこれを行うこともできます。「ソース>クリーンアップ>不要なコード>未使用のプライベートメンバーの削除」を参照してください。

于 2012-04-25T14:38:55.717 に答える