List转为List
今天,测试在测试小程序过程中,偶然发现了之前的功能bug,因为那一块一直没动过,所以知道今天才发现,那就记录下吧。
java代码有一处是要把 List<String> 转为List<Long> ,我看最初代码也转了 但是方式不对,
List<String>转List<Integer> 的 两种方式
方式一:
List<String> list1 = Array.asList()
list.add(XXX)
List<Long> list2 = list1.stream.map(Long :: parseValue).collect(Collector.toList)
方式二:
List<String> list1 = Array.asList()
list.add(XXX)
List<Long> list2 = Array.asList()
CollectionUtils.collect(list1 ,new Transformer(){
@override
public Object transform(Object o) {
return Long.parseLong(o.toString());
}
},list2)
第一种方式 使用stream流的方式转换没有问题 功能实现,但是在使用第二种方式
debug的时候发现一处 报错 :
java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at java.util.AbstractList.add(AbstractList.java:108)
at com.atguigu.test.ListTest.main(ListTest.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
查资料发现这是 ArrayList 报的错误。为什么呢 ?
原