String 转 List<String> 报错啦
现象
1 2 3 4 5 6 7 8 9 10 11
| @Test public void test08() { String a = "00000615=2\r\n00000615=3\r\n00000615=4\r\n";
List<String> alist = Arrays.asList(a.trim().split("\r\n")); alist.remove(0);
List<String> blist = new ArrayList(Arrays.asList(a.trim().split("\r\n"))); blist.remove(0); }
|
1 2
| java.lang.UnsupportedOperationException at java.util.AbstractList.remove(AbstractList.java:161)
|
原因
点进 asList 源码:
1 2 3
| public static <T> List<T> asList(T... a) { return new ArrayList<>(a); }
|
注意此处new的ArrayList, 不是平时用的ArrayList. 他引入的路径不一样. 此处创建的是Arrays的一个内部静态类的对象. 而此处ArrayList不存在add和remove方法. 所以增删都会报错!