Integer.toString(args)
会像String.valueOf(args)
一样抛出NullPointerException
吗?
我知道这个问题有点傻,但我想要弄清楚的是,Integer.toString()
是否有可能会产生NullPointerException
。
Integer.toString(args)
会像String.valueOf(args)
一样抛出NullPointerException
吗?
我知道这个问题有点傻,但我想要弄清楚的是,Integer.toString()
是否有可能会产生NullPointerException
。
Integer i = null;
Integer.toString(i); // Null pointer exception!!
String.valueOf(i); // No exception
i.toString(); // Again, Null pointer exception!!
public class Test {
public static void main(String[] args) {
Integer i = null;
System.out.println(Integer.toString(i)); // NullPointerException
}
}
toString
。 - Sotirios DelimanolisInteger.toString(args)
会导致NPE。这正是我展示的内容。 - Marvinvar.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.toString(var.intValue())
显然,如果var
为空,则当前方法将抛出NullPointerException,并且既不会调用intValue()
也不会调用toString(int)
。
因此,再次强调,toString()
和toString(int)
本身永远不会抛出NullPointerException。
Integer
的静态方法toString(int i)
吗?该方法永远不会抛出NullPointerException
——你无法传递任何int
值,这些值会产生NullPointerException
。Integer#toString不需要任何参数,只传递字段value
。value
永远不可能为null,因为您不能传递null int
原始类型,而null String
将仅抛出NumberFormatException
here
编辑:
我没有考虑到带有int
的toString方法,但结果将是相同的-int
永远不可能为null,因此不会出现NPE
args
是null
。 - Elliott Frischargs
的类型是int
。 - Tunakinull
会导致NPE。 - Elliott Frisch