戻り値をラップする
戻り値のラップリファクタリングでは、メソッドを選択して戻り値のラッパークラスを作成するか、既存の互換性のあるラッパークラスを使用できます。 選択されたメソッドからの戻り値はすべて適切にラップされ、メソッドへのすべての呼び出しではラップされていない戻り値が返されます。
元の計画よりも多くの情報を返すように設計が変更された場合、メソッドの戻り値をラップすると便利です。 ラッピングの後、ラッパークラスを拡張して、より多くのデータをメソッドから返すことができます。 また、プリミティブの戻り値をラップするのが一般的であるため、必要に応じてインターフェースと実装を切り離すことができます。
Additional Java Refactoringsプラグインをインストール
この機能は、インストールして有効にする必要がある 追加の Java リファクタリング(英語)プラグインに依存しています。
Ctrl+Alt+S を押して設定を開き、 を選択します。
Marketplace タブを開き、 追加の Java リファクタリングプラグインを見つけて、 インストール をクリックします (プロンプトが表示されたら、IDE を再起動します)。
戻り値ラップのリファクタリングを実行する
エディターで目的のクラスを開き、戻り値をラップするメソッドにキャレットを配置します。
メインメニューまたはコンテキストメニューで、 に移動します。
開いたダイアログで、新しいラッパークラスの名前とパッケージを指定するか、既存の互換ラッパークラスを選択します。
プレビューと変更の適用
サンプル
前 | 後 |
|---|---|
class Order {
String customer;
String getCustomer() {
return customer;
}
}
|
class Order {
String customer;
Wrapper getCustomer() {
return new Wrapper(customer);
}
}
public class Wrapper {
private final String value;
public Wrapper(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
|
戻り値のラップダイアログ
このリファクタリングを使用して、メソッドの戻り値を囲むラッパークラスを作成するか、互換性のある既存のクラスをラッパーとして使用します。
項目 | 説明 | |
|---|---|---|
戻り値をラップするメソッド | この読み取り専用フィールドには、選択したメソッドの名前が表示されます。 | |
新規クラスを作成 | 新しいラッパークラスを作成するには、このラジオボタンをクリックします。 このオプションを選択した場合は、以下のフィールドにクラスと宛先パッケージ名を指定します。 | |
クラス名 | 新しいラッパークラスの名前を入力します。 | |
パッケージ名 | デフォルトでは、現在のパッケージ名が表示されます。 テキストフィールドに別のパッケージ名を入力するか、省略記号ボタンをクリックしてツリービューから宛先パッケージを選択できます。 目的のパッケージが存在しない場合は、「 | |
対象の宛先ディレクトリ | このフィールドを使用して、ターゲットの宛先ディレクトリを選択します。 デフォルトでは、現在の宛先ディレクトリが表示されます。 通常、現在のパッケージに基づいてターゲットの宛先を選択します。 このパッケージが複数のルートに存在する場合は、矢印ボタンをクリックして、リストから 同じソースルートに残す を選択できます。 この場合、ラッパーは最初のクラスの近くに配置されます。 省略記号ボタンをクリックして、 宛先ディレクトリの選択 ウィンドウを開くことができます。 ディレクトリ構造 タブを選択して別の宛先ディレクトリを指定するか、隣接クラスの近くにラッパーを配置したい場合は 隣接クラスで選択 タブを選択します。たとえば、 util ディレクトリに Pair クラスや Triple クラスの近くにラッパーを置きたいが、正確なパッケージを思い出せない場合、Pair クラスの近くにラッパーを置くことで時間を節約することができます。 | |
既存クラスの使用 | 既存のクラスをラッパーとして使用するには、このラジオボタンをクリックします。 | |
名前 | 目的のラッパークラスの名前を指定します。 このようなクラスには、問題の戻り値と同じ型のパラメーターを持つコンストラクターが含まれている必要があることに注意してください。 テキストフィールドに完全修飾クラス名を入力するか、省略記号ボタンをクリックして パラメータークラスの選択 ダイアログで目的のクラスを選択します。 プロジェクトクラスと非プロジェクトクラスの両方から目的のラッパークラスを選択できることに注意してください。 | |
ラッパーフィールド | 指定されたラッパークラスで検出されたフィールドのリストから、戻り値を格納するフィールドを選択します。 | |
内部クラス | このラジオボタンをクリックして、内部クラスを作成します。 たとえば、プライベートメソッドを持っている場合は、そうすることができます。 この場合、すべてを同じクラスにすることができます。 | |
名前 | 内部クラスの名前を指定します。 |
戻り値のラップダイアログ