Collectionオブジェクトの要素をインスタンス生成時にセットする

Collectionオブジェクトの要素をインスタンス生成時にセットする

Set型のオブジェクトにデータを2件セットアップする時の書き方の紹介です。
Testのデータセットアップとかに役立つと思います。

冗長なやり方でのデータセット

Set<Address> params = new HashSet();
        params.add(Address.builder()
                .address("fashion 109")
                .district("Shibuya")
                .build());
        params.add(Address.builder()
                .address("salary 999")
                .district("Shinbashi")
                .build());

これでもいいのですが、
インスタンス生成後に変数名のメソッドを二回呼んでいるのが冗長に見えますね。
上記のように近くに記述がまとまっていればいいのですが、インスタンス生成と値のセットの記述が離れているとなお一層見にくくなります。

InstanceInitializerによるデータセット

 Set<Address> params = new HashSet() {
            {
                add(Address.builder()
                        .address("fashion 109")
                        .district("Shibuya")
                        .build());
                add(Address.builder()
                        .addressId(2)
                        .address("salary 999")
                        .district("Shinbashi")
                        .build());
            }
        };

HashSetのインスタンスを生成して、要素を直接入れる方法です。
{}で囲むことでHashSetのメソッドを呼ぶことが出来ます。
宣言時に要素をセットしているので、改めてインスタンスのメソッドを呼ぶ必要がありません。
しかも記述が散らばることもありません。

まとめ

InstanceInitializerおすすめです。

プログラミングカテゴリの最新記事