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来接值,不要偷懒用自动拆箱功能。

  • 相关阅读:
    Java I/O
    iOS AppsFlyer的使用注意事项
    Star Schema and Snowflake Schema
    SSB基准测试
    ES Route
    CPS(Cyber-Physical Systems)白皮书-摘选
    蓄电池放电容量与环境温度的关系
    时间序列分析(二)
    时间序列分析(一)
    IndexR
  • 原文地址:https://www.cnblogs.com/linkstar/p/5664796.html
Copyright © 2011-2022 走看看