[英]NullPointerException possibility in Integer.toString(arg) method in java
是否有任何可能Integer.toString(args)
給出像String.valueOf(args)
這樣的NullPointerException
。
我知道它的愚蠢問題,但我想清楚, Integer.toString()
可能給出NullPointerException
。
技術上是的,由於拆箱。 雖然我不確定這是不是你的意思:
public class Test {
public static void main(String[] args) {
Integer i = null;
System.out.println(Integer.toString(i)); // NullPointerException
}
}
答案是肯定的,不是。 這取決於人們如何解釋你的問題。
表達式var.toString()
(或Integer.toString(var)
)是否可能拋出NullPointerException? 是。
Integer.toString()
(或Integer.toString(int)
)方法是否會拋出NullPointerException? 沒有。
在var.toString()
,如果var
為null,則拋出NullPointerException。 但是當前方法將拋出異常,並且不會調用toString()
。
在Integer.toString(var)
,如果var
為null,則拋出NullPointerException。 但是拋出它的不是 toString(int)
方法。 如果var是Integer對象,則表達式是簡寫
Integer.toString(var.intValue())
因此很明顯,如果var
為null,則當前方法將拋出NullPointerException,並且不會調用intValue()
和toString(int)
。
所以重申一下, toString()
和toString(int)
本身永遠不會拋出NullPointerException。
你的意思是類Integer
的靜態方法toString(int i)
? 該方法永遠不會拋出NullPointerException
- 沒有可以傳遞的int
值會產生NullPointerException
。
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
整數#toString不接受任何args,只傳遞字段value
。 value
永遠不能為null,因為你不能傳遞null int
原語,而null String
只會在這里拋出一個NumberFormatException
編輯:我沒有考慮采用int
的toString方法,但結果將是相同的 - int
永遠不能為null所以不會有NPE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.