でも引数付のコンストラクタがないので、インスタンスイニシャライザやスタティックイニシャライザで処理することは多いと思います。でも定義と宣言が分かれてしまうので、ちょっとわかりづらくなるケースがあります。
というのを組みわせで解決してみました。がこんな感じ。
// 更新できないSetをメンバ変数として生成する
private final Set<String> set = Collections.unmodifiableSet(
new HashSet<String>(
Arrays.asList(
"aaa",
"bbb",
"ccc",
"ddd"
)
)
);
private final Set<String> set = Collections.unmodifiableSet(
new HashSet<String>(
Arrays.asList(
"aaa",
"bbb",
"ccc",
"ddd"
)
)
);
ていうか、素直にユーティリティ系のメソッドを準備すべきですよね。
private final Set<Integer> set2 = newUmSet(
1,
2,
3,
4
);
@SafeVarargs
static <E> Set<E> newUmSet(T... args){
Set<E> set = new HashSet<E>(Arrays.asList(args));
return Collections.unmodifiableSet(set);
}
1,
2,
3,
4
);
@SafeVarargs
static <E> Set<E> newUmSet(T... args){
Set<E> set = new HashSet<E>(Arrays.asList(args));
return Collections.unmodifiableSet(set);
}
0 件のコメント:
コメントを投稿