import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = List.of("a", "b", "c");
list.add("d");
System.out.println(list.size());
}
}
選択肢
- あなたの回答
- 正解
正解
D. 実行時に UnsupportedOperationException が発生する
詳細解説
List.of() は変更不可のリストを返します。add や remove を呼び出すと実行時に UnsupportedOperationException がスローされます。
なぜ他の選択肢が違うのか
- add は許可されていないため 4 にはなりません。
- 例外がスローされるため 3 が表示されることはありません。
- List に add メソッドは存在するためコンパイルできます。
罠ポイント
List.of() と new ArrayList<>() はどちらも List ですが前者は不変です。コンパイルエラーにならないため実行時まで気付きにくい点に注意しましょう。