JAVA学习---基本数据类型不能被泛化

        之前在学习JAVA的时候,视频中就提到过自动装箱和卸箱的功能。因为就是将这个知识点混杂才引起的错误,所以这里先回顾下这两个概念:

自动装箱:自动将基本数据类型转换为包装器类型,该过程自动调用包装器类型的valueOf方法;

自动拆箱:同自动装箱过程相反,如Integer转换为int其自动调用int类型的intValue方法。

详细过程参见:(7条消息) java进阶--深入理解Java自动装箱拆箱机制(Autoboxing and unboxing)_HankingHu的博客-CSDN博客_jdk自动装箱

 所以,按照上面的逻辑,便得出基本数据类型和包装器类型可以任意转化。而在使用ArrayList类得到便于操作的数组对象,常喜欢使用工具类Arrays.asList方法,对int数组直接进行操作,这时就会报错,一般语句操作就是

int[] arr = new int[]{1,2,3};
List<Integer> list = Arrays.asList(arr);
或
List<Integer> list = new ArrayList<>(Arrays.asList(arr));

而上述两种方法在API中的描述分别如下:

asList方法指定输入参数为泛型,但是基本数据类型不能被泛化这是规定,所以asList将int[]作为其类型导致其返回的是List<int[]>,和List<Integer>不一致。

关于泛化可见(7条消息) Java中的泛化_为你灯明三千的博客-CSDN博客_java泛化

 实在需要将int[]转换为List<Integer>可见(7条消息) java中 int 数组转换为 List_zhangbw~的博客-CSDN博客_int转list java

此文仅留作参考回顾,如有问题烦请各位帮忙指出~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值