web-dev-qa-db-ja.com

Eclipseにメソッド/フィールド/関数のリファクタリングが存在しないのはなぜですか?

インターフェースでの操作は時代遅れなので削除することにしました。 Eclipseには、このような「リファクタリング」の自動サポートがないようです。

私にとっては、リファクタリング操作です。誰も(テスト、クライアントAPI)が操作が削除されたことに気付かないため、コードの動作は保持されます。

Eclipseでは、Javaコードで、インターフェースのメソッドに次のオプションがあります:名前の変更、移動、メソッドシグネチャの変更、インライン、インターフェースの抽出、スーパークラスの抽出、可能な場合はスーパータイプを使用、プルアップ、プッシュダウン、パラメーターobjetの導入、インダイレクションの導入、宣言型の生成。

削除メソッド/フィールド/関数のリファクタリングが存在しない理由はありますか?

3
raisercostin

その理由は、この機能がまだ実装されていないためです バグ39715Add Refactor/Removeインターフェースメソッドとすべての実装を参照してください。 [リファクタリング]Eclipse Issue Tracker:

これが私が今遭遇しているものです。不要なメソッドをインターフェイスとすべての実装クラスから削除する一連のコードをクリーンアップしています。現在、これは非常に退屈なプロセスです。インターフェイスメソッドを選択してすべての実装と共に削除できるようにリファクタリングすることは役に立ちます。すべてのクラスのメソッド...

上記のリクエストは、次に重複のマークが付けられています バグ24379[リファクタリング]インターフェイスの署名を変更します

インターフェイスでメソッドを追加または削除する場合、クラスの実装でメソッドを自動的に追加または削除できる可能性があれば便利です。メソッドを追加するときは、このメソッドを実装するメモ付きのタスクも追加する必要があります...

バグ24379は10年以上休止しているようで、「報告:2002-10-04」および「目標マイルストーン」フィールドはまだ設定されていません。

8
gnat

インターフェイスからメソッドを削除する場合、2つの状況しかありません。メソッドがどこかで使用されているか、使用されていないかのどちらかです。メソッドが使用されない場合は、リファクタリングツールがなくても削除できます。

この方法を使用する場合、使用するすべての場所で自動的に削除する方法はほとんどありません。どこにでもそれを単に削除することは確かに物事を壊すでしょう。 IDE=にできる最善の方法は、メソッドが使用されているすべての場所のリストを提供し、それぞれの場合にメソッドを安全に削除する方法を決定できるようにすることです。EclipseなどのIDEは、君は。

簡単に言うと、メソッドを削除するためのリファクタリングツールは、使用するメソッドに応じて、取るに足りないので役に立たないか、物事を壊すので役に立たないでしょう。

4
Geo