2013年4月26日金曜日

[Java]Arrays.asListを使ってListを作るとadd/clear/removeする時にUnsupportedOperationExceptionが発生するよ

ハマったのでメモ。

なぜかUnsupportedOperationExceptionが発生して困っていたのですが、原因はタイトルの通りでした。

Arrays.asList()使うと固定長のListが返ってくるそうな。
リファレンスに書いてありますね。

Arrays (Java Platform SE 6)

Returns a fixed-size list backed by the specified array
解決法はCollection インタフェースを実装したクラスを生成すれば良いと。

String[] str = new String[] {"aaa", "bbb", "ccc"};
List<string> list = new ArrayList<string>(Arrays.asList(str));

Java やってる人なら当たり前って感じなんでしょうか。

参考:
http://stackoverflow.com/questions/2965747/why-i-get-unsupportedoperationexception-when-trying-to-remove-from-the-list

0 件のコメント:

コメントを投稿