(记)项目开发中遇到的问题:List<String>转为List<Long>踩坑


今天,测试在测试小程序过程中,偶然发现了之前的功能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 报的错误。为什么呢 ?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值