2017-06-06 6 views
0

20個のfiledsを持つ大きなJavaオブジェクトを作成したいのですが、ほとんどのIDEではgenerate関数が用意されていますので、私のオブジェクトのすべてのフィラーに対してgetterとsetterを生成できます。連鎖したセッターを生成する

事があり、私はmethod chainingの大ファンだと私はすべてのオブジェクトにそれを使用していますが、私は非常に便利ではありません各settersの終わりでreturn thisを追加する必要があります。

IDEから特別なプラグインを使ってセッターを生成することはできますか?

+3

どのようにゲッターをチェーンしますか? –

+0

私の悪い、編集された。 – Will

+0

@OliverCharlesworthあなたはちょうど私の心を吹いた。しかしゲッターはおそらく連鎖してはいけません。 – Nathan

答えて

1

一般的に「流暢な」セッターと呼ばれています。自動的にあなたのためにそれを行うa plugin for Netbeansがあります。私はかなり日食やIntelliJで何かを見つけることができると確信しています。

2

それは、IntelliJ IDEAで可能です:

  1. コール "の生成>セッター" メニュー
  2. 選択したテンプレート "ビルダー"。
  3. セッターを生成するすべてのフィールドを選択してください。
  4. 「OK」をクリックしてください。ここで

生成された結果は、(1つのフィールド用)です。

public MyClass setParam(String param) { 
     this.param = param; 
     return this; 
    } 

それはそこに独自のテンプレートを作成することも可能です)

0

あなたはロンボク

lombok.accessorsを試すことができます.chain = [true | false](デフォルト:false)

trueに設定すると、生成されたセッターは(voidの代わりに)これを返します。 @Accessorsアノテーションの明示的に設定されたチェーンパラメータは、この設定よりも優先されます。

これは必要なものですか? https://projectlombok.org/features/GetterSetter.html

@Accessors(chain = true) 
@Getter 
@Setter 
@AllArgsConstructor 
@NoArgsConstructor(access=AccessLevel.PRIVATE) 

public class LombokTest { 
    private String test; 

    public static void main(String []args) { 
     LombokTest a = new LombokTest(); 
     System.out.println(a.setTest("amber").getTest()); 
    } 
} 
+1

*ロンボク*を注意して使用してください!これは、JDKコンパイラをバイパスしてバイトコードを変更し、将来のJavaバージョンとの非互換性を期待する必要があります。 –

関連する問題