37

私はしばしば、作業中のクラス内に内部クラスを作成することによって、最初にコードをリファクタリングします。完了したら、全体を新しいクラス ファイルに移動します。これにより、新しいクラスへのコードのリファクタリングが非常に簡単になります。なぜなら、A) 1 つのファイルしか扱っていないからです。B) 名前がよくわかるまで、新しいファイルを作成しないからです (最終的には複数のクラスとして)。

Eclipse が最終的な動きを助ける方法はありますか? クラスが必要なパッケージを指定するだけで、クラス名からファイル名を、パッケージからディレクトリを割り出すことができます。

これは些細なリファクタリングのように見え、本当に明白ですが、それを実現するためのキーストローク/ジェスチャ/その他がわかりません。ドラッグ、メニュー、コンテキスト メニュー、およびキーボード ショートカットの参照を試みました。

これ知ってる人いる?

[編集] これらは既にこのファイルの「トップ レベル」クラスであり、内部クラスではなく、「Move」は新しいクラスを作成したくないようです。これは、私が通常行う難しい方法です。外に出て、空のクラスを作成し、戻って移動する必要があります。ワンステップですべてをやりたいと思います。

4

5 に答える 5

45

すみません、さっきは間違った回答をしてしまいました。私は再確認しましたが、それはあなたが望むものではありませんでした。ただし、3.4 で解決策を見つけました。

クラスを強調表示し、CTRL-C をコピーするか CTRL-X を切り取り、クラスを入れたいパッケージをクリックして、CTRL-V を貼り付けます。Eclipse がクラスを自動生成します。

メンバー タイプをトップ レベルに変換してもうまくいきません。これを行うと、外部クラスのフィールドが作成され、外部クラスをパラメーターとして受け取るコンストラクターが生成されます。

于 2008-09-18T23:49:38.103 に答える
37

Eclipse 3.6 では、次のことができます: Refactor -> Move type to new file

于 2011-04-01T00:34:17.880 に答える
1

クラス名 (ソース コード内) を右クリックし、[リファクタリング] -> [メンバー タイプをトップ レベルに変換] を選択します。ただし、パッケージを選択することはできません。

于 2008-09-18T23:55:09.353 に答える
0

2 つのリファクタリングで実行できます。

  1. メンバー タイプをトップ レベルに変換する

  2. 動く

于 2008-09-18T23:55:07.450 に答える