String[] aArr = ...;
String[] bArr = ...;
List<String> images = Arrays.asList(aArr);
images.addAll(Arrays.asList(bArr));
在addAll处抛出以下异常,如果单独添加第二个列表的元素,也会引发相同的异常。
java.lang.UnsupportedOperationException
09:06:57,156 ERROR [STDERR] at java.util.AbstractList.add(AbstractList.java:
131)
09:06:57,156 ERROR [STDERR] at java.util.AbstractList.add(AbstractList.java:
91)
我该如何纠正这个问题?
答案 0 :(得分:3)
像这样:
List<String> images = new ArrayList<String>();
images.addAll(Arrays.asList(aArr));
images.addAll(Arrays.asList(bArr));
请注意,根据documentation,Arrays.asList()
会返回固定大小列表。因此,如果要连接两个数组,则需要分配自己的可变大小的列表来执行此操作。
答案 1 :(得分:3)
Arrays.asList(aArr);
返回一个不可变列表(好吧,无论如何都是大小),因为列表只是指你调用get(i)时的初始数组。所以创建另一个不是这样的,例如
List<String> images = new ArrayList(Arrays.asList(aArr));