java中的Integer.toString(arg)方法中的NullPointerException可能性

时间:2016-01-03 19:09:44

标签: java nullpointerexception tostring

Integer.toString(args)是否有可能NullPointerException String.valueOf(args) {/ 1}}。

我知道它的愚蠢问题,但我想明确Integer.toString()有可能给NullPointerException

5 个答案:

答案 0 :(得分:3)

技术上是的,由于拆箱。虽然我不确定这是不是你的意思:

public class Test {

    public static void main(String[] args) {
        Integer i = null;
        System.out.println(Integer.toString(i)); // NullPointerException
    }
}

答案 1 :(得分:2)

答案是肯定的,不是。这取决于人们如何解释你的问题。

表达式var.toString()(或Integer.toString(var))是否可能抛出NullPointerException?

方法Integer.toString()(或Integer.toString(int))是否会抛出NullPointerException?

var.toString()中,如果var为空,则抛出NullPointerException。但是当前方法会抛出异常,并且不会调用toString()

Integer.toString(var)中,如果var为空,则抛出NullPointerException。但引发它的toString(int)方法。如果var是Integer对象,则表达式是

的简写
Integer.toString(var.intValue())

因此显然如果var为null,则当前方法将抛出NullPointerException,并且intValue()toString(int)都不会被调用。

重申一下,toString()toString(int)本身永远不会抛出NullPointerException。

答案 2 :(得分:1)

您的意思是类toString(int i)的静态方法Integer吗?该方法永远不会抛出NullPointerException - 您可以传递的int值不会产生NullPointerException

答案 3 :(得分:1)

Integer.toString(args)可以提供NullPointerException 联合,例如String.valueOf(args)

Integer i = null; 
Integer.toString(i);        // Null pointer exception!! 
String.valueOf(i);          // No exception 
i.toString();               // Again, Null pointer exception!!

在此处查看我的实验:http://rextester.com/YRGGY86170

答案 4 :(得分:0)

整数#toString不接受任何参数,只传入字段valuevalue永远不会为null,因为您无法传递null int原语,而null String只会抛出NumberFormatException here

编辑: 我没有考虑使用int的toString方法,但结果将是相同的 - int永远不能为空,因此不会有NPE