记录一下,两次线上问题的教训!
初始化List一定要慎用Arrays.asList()来初始化,
Arrays.asList()初始化后集合不支持修改。
使用之前一定要考虑一下后面会不会对这个集合进行修改操作。
List<BigDecimal> list = Arrays.asList(new BigDecimal("11.11"),
new BigDecimal("22.22"),
new BigDecimal("33.33"));
list.add(new BigDecimal("44.44")) 操作就会报java.lang.UnsupportedOperationException]
解决方案:
1.创建一个java.util.ArrayList的ArrayList包装一层:
public class Test {
public static void main(String[] args) {
String[] array = { "1", "2", "3" };
List<String> list = new ArrayList<String>(Arrays.asList(array));
list.add("4");
}
}
2.或者自己创建ArrayList,手动add,不用Arrays.asList(array)来初始化
String[] array = { "1", "2", "3" };
List<String> list = new ArrayList<String>();
for (String str : array) {
list.add(str);
}
System.out.println(list.size());