4

大規模な Java プロジェクトでいくつかのメソッドを削除する必要があり、それを行うのに役立つツールがあるかどうか疑問に思っていました。基本的に、一致するすべてのメソッドが削除される署名とソース フォルダーを指定します。

そのようなものが存在しない場合は、スクリプトを作成します。

4

6 に答える 6

1

Eclipse やその他の強力な IDE を使用している場合は、これを行うためのサポートが組み込まれている可能性があります。Eclipse リファクタリングを使用してメソッドを削除できないのを参照してください。あなたが望むものを達成する方法のために。

于 2011-10-21T12:58:21.050 に答える
1

今日、これを達成する方法がいくつかあります。たとえば、Eclipse コンパイラーに AST を提供するように指示できます (例については、私のブログを参照してください)。AST をナビゲートしてメソッドを見つけ、ノードを削除してソースを変更できます。

これにより、コードを有効に保つことが容易になります。Eclipse コード フォーマッターを使用すると、後でフォーマットをクリーンアップできます。

MoDisCoのようなプロジェクトは、プロジェクト全体を分析し、全体を検索する方法を提供することで、さらに一歩進んでいます。MoDisCo のドキュメントは、初心者にはあまり役に立たないことがわかりました。

于 2011-10-21T13:09:09.777 に答える
0

これには、 Java フロント エンドを備えたDMS ソフトウェア リエンジニアリング ツールキットを使用できます。

DMS は (この場合は Java のフロント エンドを使用して) 言語を解析し、AST とシンボル テーブルを構築し、カスタム分析に基づいて AST を操作する機能を提供します。この場合、OPはメソッド署名を提供したいと考えています(おそらく、署名で使用される型が定義されていない可能性があるため、解釈する必要があるコンテキストを使用して)、シンボルテーブルでその署名を調べ、宣言のポイントを見つけます(これはシンボル テーブルにあります) AST ノードとして宣言し、宣言を空の宣言に置き換える書き換え規則を適用します。

彼が見つけたメソッドに対して実行したい分析は、それが使用されているかどうかです。シンボル テーブルにもその情報があります。

于 2011-10-21T17:34:03.610 に答える
0

あなたは「ソース変換」について話しているのですが、Google は Java 用の BeautyJ の存在を明らかにしています。

http://beautyj.berlios.de/

「BeautyJ は、Java ソース コードを XML に変換したり、その逆に変換したりできます。BeautyJ は、クラスまたはインターフェイスとそのメンバーを、関連するソース コードおよび Javadoc コメントと共に単一の XML ファイルに格納する XJava 形式を導入します。BeautyJ は、自動構造化の幅広い可能性を開きます。 Sourclet API を使用するか、Java ソース コードを XML に変換し、任意の外部変換を許可する (たとえば、XSLT を適用する) ことによって、Java ソース コードを変換します。」

ただし、あなたのケースが非常に単純であるため、そのようなプログラムの使用方法を学ぶのに苦労するよりもスクリプトの方が優れているかどうかはわかりません。他の目的のためにもツールチェーンに入れることは価値があるかもしれませんが.

于 2011-10-21T12:04:43.853 に答える
-1

簡単な解決策を探しましたが、何も見つかりませんでした。さまざまなツールを使用してそこにたどり着きました。

  1. 削除したい主なメソッドを含むすべてのファイルを見つけるためのgrep
  2. これらのファイルを検索/置換して、これらのメソッドを非公開にします
  3. たった 1 つのルールによる Eclipse のクリーンアップ: 未使用のプライベート メソッドを削除する

他の未使用のプライベートメソッドを削除するという小さな副作用で仕事をしました。そのプロジェクトのコンテキストでは大したことではありません。ほとんどすべてのファイルが、使用されていないプライベート メソッドを削除する保存アクションで以前に保存されていたからです。

入力していただきありがとうございます。後で適用される可能性があります。

于 2011-10-22T23:36:51.227 に答える