zoukankan      html  css  js  c++  java
  • 别说你不知道java中的包装类,wrapper type,以及容易在自动拆箱中出现的问题

    很多时候,会有人问你,你知道什么是包装类吗?

    或者高端一点问你你知道,wrapper type,是什么吗?

    然后你就懵逼了,学了java很多时候都不知道这是啥。

    其实问你的人,可能只是想问你,java面向对象你理解的怎么样。

    在java中很多时候我们都说一切皆对象。

    但是int,double,总有几个特例告诉你,他不是对象。

    但是很多时候我们需要对象,而不是int,但是需要像int一样的对象。

    举个例子就是,你需要在List中使用int,但是List只能放对象。类似的问题还有很多哦。

    于是java5出现了Integer。

    这就是传说中的包装类。

    那么包装类要注意什么问题呢?

    这次我就遇到一个很容易犯的错误。

    List<Integer> list = new ArrayList<Integer>();

    list.add(1);

    list.add(2);

    list.add(null);

    for(int i:list)

    {

    sum += i;

    }

    然后就报错了

    这里循环的时候用的是int来接的值,那么java就会利用自动拆箱的功能。

    那么有很多人会问,自动拆箱是什么。

    简单说,就是会调用intValue()把Integer转换成了int值。

    那么错误就很容易出现了,空对象是没有intValue这个方法的。

    所以以后的时候,要么取值的时候判空,要么用Integer来接值,不要偷懒用自动拆箱功能。

  • 相关阅读:
    Unity3D鼠标点击处
    Unity3D静态AI自动寻路
    Unity3D 雷达检测器
    Unity3D重新加载光线变暗问题
    Unity3D切换场景不销毁物体
    软件&环境&网页
    2020软件工程作业05
    2020软件工程作业04
    利用Java输入输出流更改文件中指定的内容
    2020软件工程作业03
  • 原文地址:https://www.cnblogs.com/linkstar/p/5664796.html
Copyright © 2011-2022 走看看