Integer.toString(args)
是否有可能NullPointerException
String.valueOf(args)
{/ 1}}。
我知道它的愚蠢问题,但我想明确Integer.toString()
有可能给NullPointerException
。
答案 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不接受任何参数,只传入字段value
。 value
永远不会为null,因为您无法传递null int
原语,而null String
只会抛出NumberFormatException
here
编辑:
我没有考虑使用int
的toString方法,但结果将是相同的 - int
永远不能为空,因此不会有NPE