爬坑:Java自动拆箱

Posted Small leaf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬坑:Java自动拆箱相关的知识,希望对你有一定的参考价值。

先来代码。你是否写过这样的代码?

 public static void main(String[] args) 
        Integer test = null;

        int test2 = test;
    

或者说

 public static void main(String[] args) 
        Integer test = null;
        test(test);
    

    public static void test(int test)

    

或者说test方法里面传入的是其他地方的,比如数据库有一个Integer字段,然后get传进去。

这里就会出现java.lang.NullPointerException,而这个错误如果你没有很好的日志处理,很难定位出来。
这个就是自动拆箱中出来的问题。
关于自动拆箱,装箱,请看Java自动拆箱装箱

在Integer转化成 int时会调用Integer的intvalue方法
Integer对象都为Null,怎么调用intValue方法,这个时候就报错,所以我们在参数传递的时候一定要注意,自动拆箱的问题。

以上是关于爬坑:Java自动拆箱的主要内容,如果未能解决你的问题,请参考以下文章

Java中的值类型

Java泛型与集合笔记

Java面试题2--数据类型

C#装箱和拆箱

拆箱与装箱可能会出现的坑

自动拆/装箱