21

何かに対してリファクタリングの名前変更を行うと、しばらくそれを実行しようとしますが、その後、以前の名前に戻します。エラーや何かが間違っているという兆候は表示されません。


Eclipse を再起動したところ、さらに悪化しています。以前は、少なくとも[リファクタリング] > [名前の変更] を選択すると、名前が「ボックス化」され、リファクタリングを実行できるふりをしていました。ここで、再起動後、[リファクタリング] > [名前の変更] を選択しても何も起こりません。

Win7 64 ビット
Eclipse Indigo ビルド 20110615-0604

4

12 に答える 12

6

Eclipse からプロジェクトを削除して (ディスク上のプロジェクトの内容を削除しないでください)、再読み込みしてみてください。

于 2012-10-12T22:24:12.647 に答える
5

ここで他の回答に情報を追加したかったのです。

Archenoth の回答では、名前の変更操作でプレビューを実行すると、より多くの情報を取得できることが指摘されています。プレビューを表示する方法を理解するのにしばらく時間がかかりました。名前の変更キーストロークをもう一度入力して、ダイアログを表示します。時々、Preview はエラー情報を提供しませんでした (また、ppoup なしのクイック リネームも提供しませんでした) が、ダイアログで [OK] をクリックすると、詳細が表示されました。

MutantXenuは、ワークスペース内のファイルに移動してログ内の情報を見つけましたが、Eclipse 内で [エラー ログ] ビュー (Cmd-3 から) に移動して、これらの情報にアクセスすることもできます。

この問題が発生したとき、エラー ログに、「メソッド宣言の検索で元の要素が見つかりませんでした」という失敗したアサーションが示され、未解決のバグがいくつか発生しました。(私は Kepler を実行していますが、問題を再現するのは明らかに難しく、解決されたという証拠はありません。ここここを参照してください。)

メソッドを選択して Cmd-G (または Ctrl-G: 検索 > 宣言 > ワークスペース) を使用すると、この特定のバグが発生しているかどうかを確認できます。Eclipse は、名前を変更しようとしているメソッドを見つけることができず、検索が空になります。

私のケースは、エラーが異なるクラスの同じ名前のメソッドに関係している可能性があることを示唆しています。1 つの方法で問題が発生しても、他のほとんどの方法には影響しません。

Refresh、Project->Clean、および Eclipse の再起動は役に立ちませんでした。 ケビンの答えは私にとってはうまくいきました。

于 2014-12-17T17:03:20.900 に答える
4

エディターで直接メソッドの名前を変更しても、非常にまれなケースでは機能せず、IDE はリターン キーを押した後に元のメソッド名を復元します。、右上隅でメソッド名を変更すると、完全に詳細なエラーメッセージが表示されます。 in ... 作業コピー ... が存在しません。"

これは、名前を変更するメソッドがラムダまたは匿名クラスのコンテキストで使用されている場合に、メソッドの名前を変更するとこの失敗がトリガーされることを示しています。

チェックするには、ラムダまたは匿名クラスでの発生をコメントアウトします。リファクタリング/名前変更は、私の場合と同じように期待どおりに機能します。

于 2015-03-02T12:10:15.903 に答える
1

プロジェクトにエラーがあると、リファクタリングは機能しません。

エラーを修正するか、エラーとして検出されたセクションをコメントアウトして、リファクタリングを実行します。

これは私にとってはうまくいきました。

于 2013-10-14T21:22:42.010 に答える
0

4.4 (Luna) では、大規模なリファクタリング後にクロス プロジェクト リファクタリングの問題が発生しました。/.metadata/.plugins/org.eclipse.jdt.core フォルダーを削除すると、問題が解決しました

于 2014-10-04T01:07:46.923 に答える
0

あまり明白でないことが原因でリファクタリングが失敗する場合は、リファクタリングを実行するのではなく、リファクタリングのプレビューを試みることで問題を探すことができます。

Dicky Moore が述べたように、プロジェクトのエラーでリファクタリングすることはできません...しかし、これらは常にコード エラーや Eclipse がマークするビルド パスの問題ではありません。そのため、エラーがあるように見えず、それでも失敗する場合があります。上記のように、「プレビュー」では、他の場所では表示されない場合でも、これらの問題がエラー ダイアログに表示されます。

そこから、エラーを修正するようにプロジェクトを構成することができます (一般的なエラーは、リファクタリングがすべきではない出力フォルダーを考慮しようとすることです。これは、Build Path > Source設定でフォルダーを除外することで修正できます)。または、問題のあるプラグインをアンインストールします。 .

于 2014-06-16T18:24:30.643 に答える
0

両方の変数とメソッド名の名前を変更しようとしたときに、OP とまったく同じ問題が発生しました。Eclipse を再起動した後、Refactor->Rename 機能が正しく機能しました。

于 2013-02-18T21:12:30.553 に答える