Object obj = "1234";
System.out.println(obj instanceof Integer);
如果它是Integer或Float的实例,我还应该做些什么来检查这个Object。
答案 0 :(得分:3)
它返回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
}
答案 1 :(得分:2)
您的obj
是String
,下面的true
可以返回Object obj = new Integer(1234);
Object obj = 1234;
或者
{{1}}
答案 2 :(得分:1)
试试这个
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");
}
答案 3 :(得分:0)
""
之间的任何内容都是String。您正在检查String for Integer,这是它给出 false 的原因。
尝试Object obj = 1234;
它会通过 autoboxing 将原始类型int
更改为Integer
。
或
Object obj=new Integer(123);