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");
}
""
之间的任何事物都是字符串。您正在检查字符串与整数,这就是它给出 false 的原因。
试试Object obj = 1234;
它将通过自动装箱将基元类型int
更改为Integer
。
或
Object obj=new Integer(123);