簡體   English   中英

Integer 對象實例返回 false

[英]Object instanceof Integer returns false

Object obj = "1234";
System.out.println(obj instanceof Integer);

如果它是整數或浮點數的實例,我還應該做些什么來檢查此類對象。

好吧,它返回 false 因為 obj 不是Integer ,它是對String對象的引用。

Object obj = "1234";

try {
    int value = ((Integer) obj);
} catch (ClassCastException e) {
    // failed
}

或者

Object obj = "1234";

try {
    int value = Integer.parseInt((String)obj);
} catch (NumberFormatException e) {
    // failed
}

你的obj是一個String ,下面的可以返回true

Object obj = new Integer(1234);

或者

Object obj = 1234;

嘗試這個

try {
    int a = Integer.parseInt("1234");
    // No need to check instance of now, if supplied argument is number
    // then parseInt() will pass otherwise you will get exception.
} catch (NumberFormatException e) {
    System.out.println("Supplied argument is not valid number");
}

""之間的任何東西都是字符串。 您正在檢查 String 對 Integer 這就是它給出false的原因。

嘗試Object obj = 1234;

它將通過自動裝箱將原始類型int更改為Integer

或者

Object obj=new Integer(123);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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