如何检查java中的值是否为整数?

gen*_*ejo 3 java integer

我正在使用restTemplate的一些API.API返回一个类型为整数的键.

但我不确定这个值,所以我想检查密钥是否真的是整数.我认为它可能是一个字符串.

检查值是否真的是整数的最佳方法是什么?

补充:我的意思是某些API可能会返回如下所示的值.{id:10}或{id:"10"}

Ósc*_*pez 11

如果你收到的是一个String,你可以尝试将它解析成一个整数,如果它失败了,那是因为它毕竟不是一个整数.像这样的东西:

public static boolean isInteger(String str) {
    try {
        Integer.parseInt(str);
        return true;
    } catch (NumberFormatException nfe) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)


Boh*_*ian 9

Object x = someApi();

if (x instanceof Integer) 
Run Code Online (Sandbox Code Playgroud)

请注意,如果someApi()返回类型,返回的内容Integer的唯一可能性是:

  • 一个 Integer
  • null

在这种情况下,你可以:

if (x == null) {
    // not an Integer
} else {
    // yes an Integer
}
Run Code Online (Sandbox Code Playgroud)