不変リストの作成
不変リストを一つのシンプルな式で作成する。
コード比較
✕ Java 8
List<String> list =
Collections.unmodifiableList(
new ArrayList<>(
Arrays.asList("a", "b", "c")
)
);
✓ Java 9+
List<String> list =
List.of("a", "b", "c");
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
1回の呼び出し
3つのネストした呼び出しを単一のファクトリメソッドに置き換えます。
真の不変性
ラッパーではなく、リスト自体が不変です。
null安全
作成時にnull要素を拒否し、早期に失敗します。
旧来のアプローチ
冗長なラッピング
モダンなアプローチ
List.of()
JDKバージョン
9
難易度
初級
JDKサポート
不変リストの作成
利用可能
JDK 9(2017年9月)以降、広く利用可能
仕組み
List.of()は真の不変リストを作成します。ラッピングも防御的コピーも不要です。nullを受け付けず(null要素を拒否)、構造的に不変です。従来の方法では3つのネストした呼び出しが必要でした。
関連ドキュメント