之前一直使用Arrays.asList()方法,将数组转为集合,今天突然发现该方法存在一些问题,主要是会报java.lang.UnsupportedOperationException异常,查阅资料之后发现问题,使用该方法转集合的时候不可以用一些集合的方法,贴下代码
String type = "1;2;3";
List<String> levels = new ArrayList<String>();
List<String> levelids = new ArrayList<String>();
//String[] levels = null;
if (StrUtils.isNotNull(type)) {
String[] levelArr = type.split(";");
levels = Arrays.asList(levelArr);
//levelids = new ArrayList<>(levels);
}
// 此时会报错
levels.add("4");
System.out.println(levels.toString());
目前是用下面的方法解决这个问题
String type = "1;2;3";
List<String> levels = new ArrayList<String>();
List<String> levelids = new ArrayList<String>();
//String[] levels = null;
if (StrUtils.isNotNull(type)) {
String[] levelArr = type.split(";");
levels = Arrays.asList(levelArr);
levelids = new ArrayList<>(levels);
}
// 这样可以运行
levelids.add("4");
System.out.println(levelids.toString());