Arrays.asList基础类型使用问题

从源码中找问题

这个源码的截图看出来的问题就是的这里出入的参数类型是泛型T,这就是问题的根源。这个T表示派生自Object类的任何类,比如String,Integer,Double等等。泛型只能是引用类型,基础类型int、double等不是引用类型,但是数组是引用类型,那么这个参数泛型T只能是数组的引用类型。所以我们传基础类数组的时候,就只会认为你只传一个值。
在这里插入图片描述

代码演示

 int[] array={1,2,4,5}for(int aa:array){
      System.out.println(aa);
  }
 //我们出入的基础类型数组就是的一个list的第一个元素
 for(int[] aa:Arrays.asList(array)){
      for(int a:aa){
          System.out.println(a);
      }
  }

总结

Arrays.asList的参数你建议传引用类型的数组就不会有这样的问题,要么取值的时候多取一层。观察这类问题直接看源码的是最有效的,网上的那些感觉都没有说到问题的点子上,源码是最直接有效的问题解决途径。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值