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