エラー「UnsupportedOperationException」が発生
* 以下のように、Arrays.asList で作った List に対して add した際に エラー「UnsupportedOperationException」が発生する
エラー発生時
SampleArray.java
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class SampleArray { public static void main(String[] args) { String[] arrays = new String[] {"aaa", "bbb", "ccc"}; List<String> lists = new ArrayList<String>(Arrays.asList(arrays)); lists.add("ddd"); System.out.println(lists.size()); } }
表示
Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(Unknown source) at java.util.AbstractList.add(Unknown source) at SampleArray.main(SampleArray.java:9)
解決策
* Arrays.asList()を使わずに、newしてから後からaddAllで追加する
OK動作時
SampleArray.java
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class SampleArray { public static void main(String[] args) { String[] arrays = new String[] {"aaa", "bbb", "ccc"}; List<String> lists = new ArrayList<String>(); lists.addAll(Arrays.asList(arrays)); lists.add("ddd"); System.out.println(lists.size()); } }
表示
4
参考文献
http://kinopyo.com/blog/java-unsupportedoperationexception-when-manipulate-java-list/http://blog.inara.jp/2013/04/javaarraysaslistlistaddclearremoveunsup.html
http://blog.basyura.org/entry/20091214/p1
http://hack.aipo.com/archives/459/