簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM