以下是问题代码:
List<Long> departmentIds = Arrays.asList(departmentId);
departmentIds.add(1L);
在对list进行操作时,抛出java.lang.UnsupportedOperationException异常,反复查看代码,没有发现问题,后来进入源码才发现 Arrays.asList返回的ArrayList是Arrays内部类
两个ArrayList异同如下:
1、Arrays内部类ArrayList和util下的ArrayList都是实现AbstractList
2、Arrays内部类ArrayList没有实现add、addAll方法,而AbstractList内部的add方法直接抛出 UnsupportedOperationException异常
解决方法:
List<Long> departmentIds = new ArrayList();
departmentIds.add(departmentId);
departmentIds.add(1L);