2

メイン クラスで作成されたオブジェクトのセッターを生成できますか

  1. クラスXを作成しました
  2. クラスXには、setterメソッドとgetterメソッドを備えた数十の変数があります(問題ありません)
  3. 別のクラスのクラス X から生成されたオブジェクト y
  4. オブジェクト y の変数を他のクラス内に設定したい

intelliJ IDEには、セッターを何十回も書き留める代わりに、y.set1() .. y.setn()にするジェネレーターがありますか。

4

3 に答える 3

8

私はコンストラクターのトリックを使用していましたが、(私にとって)より良い方法を見つけました:

セッターを生成するクラスの「構造」ビューに移動し、メンバーを a から z に並べ替えます。

次に、セッターをコピー/貼り付けできます

ここに画像の説明を入力

複数行の編集 (alt + 左クリック) を少し行うと、行の欠けている部分を追加できるようになります。

ここに画像の説明を入力

その助けを願っています。

于 2015-06-26T15:01:27.017 に答える
1

いいえ、直接ではありませんが、すべてのフィールドを設定するコンストラクターを作成したい場合があります (おそらくdozensフィールドが面倒ですが、それでも実行可能です...)

  • クラス X に入り、Insert を押してGenerateポップアップを取得し、Enter を押して選択しConstructor、ctrl-A ですべて、Enter を押します。

これを行うために小さなカスタム IntelliJ プラグインを作成する可能性もありActionます。その努力に見合う価値があると思われる場合は...

そうではなく、多くのフィールドを持つオブジェクトを扱っている場合、Builderデザイン パターンは一見の価値があるかもしれません。

ビルダーパターンの例

これには IntelliJ リファクタリングがあります。

(上記のように) すべてのフィールドを使用してコンストラクターを作成し、Refactorメニュー (右クリック) から を選択しますReplace Constructor With Builder

次に、という名前の新しいクラスを探して、それを次のXBuilderように使用します...

X y = new XBuilder.setA(1).setB(2).setC(3).createX();
于 2013-09-03T13:22:43.993 に答える