2010年4月16日

Java:List操作時のUnsupportedOperationExceptionについて

久々にJavaを書いたので、表題のExceptionにハマっちゃいました。
こんなコードでした。

String** array = {"a", "b", "c"};
List<String> list = Arrays.asList(array);
list.add("d");

ちょこっとググッてみたらasListで作ったListに
add()で要素を追加すると上記のExceptionになるそうです。
asListのJavadocでの記載は

指定された配列を基にする固定サイズのリストを返します。返されたリストへの変更は、そのまま配列に書き込まれます。(後は省略)

なるほど。。。
とりあえず深く考えずに下記のように書き換えて回避しました。

String** array = {"a", "b", "c"};
List<String> list = new ArrayList<String>();
list.addAll(Arrays.asList(array));
list.add("d");
Share on Twitter Share the post
Qihuan Piao

朴 起煥

東京で働いている「外人歴」9年のソフトウェア「ライター」。いつの間にか納豆が食えるようになり、これで日本に慣れきったと思いきやまだまだ驚きが続いてる。読んだり書いたりするのが好きで、自身の経験や本から得た「何か」をここに書き出してる。最近古本屋にハマってる。

他にも英語中国語で書いてます、よろしければチェックしてみてください。