Object instanceof Integer返回false

时间:2014-04-03 09:58:01

标签: java string integer instanceof

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

如果它是Integer或Float的实例,我还应该做些什么来检查这个Object。

4 个答案:

答案 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)

您的objString,下面的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);