我通过restTemplate使用了一些API。 API返回一个类型为整数的键。
但我不确定该值,所以我想检查密钥是否真的是整数。 我认为它可能是一个字符串。
检查值是否真的是整数的最佳方法是什么?
加入: 我的意思是某些API可能会返回如下所示的值。 {id:10}或{id:" 10"}
答案 0 :(得分:10)
如果你收到的是一个String,你可以尝试将它解析成一个整数,如果它失败了,那是因为它毕竟不是一个整数。像这样:
public static boolean isInteger(String str) {
try {
Integer.parseInt(str);
return true;
} catch (NumberFormatException nfe) {
return false;
}
}
答案 1 :(得分:9)
Object x = someApi();
if (x instanceof Integer)
请注意,如果someApi()
返回类型Integer
,则返回的唯一可能性是:
Integer
null
在这种情况下你可以:
if (x == null) {
// not an Integer
} else {
// yes an Integer
}
答案 2 :(得分:2)
一种可能性是使用Integer.valueOf(String)
答案 3 :(得分:0)
假设您的API返回值可以是Integer或String,您可以执行以下操作:
Integer getValue(Object valueFromAPI){
return (valueFromAPI != null ? Integer.valueOf(valueFromAPI.toString()) : null);
}