为什么Integer.getInteger不工作?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

我有以下代码:

game.log.fine("HERE" + bestMove.get("score"));
Integer bestScore = Integer.getInteger(bestMove.get("score"));
game.log.fine("THERE" + bestScore);

作为一项输出,我有:

FINE: HERE50
Dec 9, 2010 11:34:17 AM game.Agent getCloud
FINE: THEREnull
Dec 9, 2010 11:34:17 AM game.Agent getCloud

也许我得补充一下HashMap<String,String>

问题是bestMove.get("score")给出一个字符串值(等于“50”)。但是如果试图转换为整数,我得到null

有人知道这里有什么问题吗?

提问于
用户回答回答于

我会用Integer.valueOf(String n)方法。

Integer bestScore = Integer.valueOf(bestMove.get("score"));

用户回答回答于

因为Integer.getInteger。从Javadoc:

使用指定的名称确定系统属性的整数值。第一个参数被视为系统属性的名称。系统属性可以通过System.getProperty(java.lang.String)方法访问。然后将该属性的字符串值解释为整数值,并返回表示此值的Integer对象。可能的数字格式的详细信息可以在getProperty的定义中找到。 如果没有指定名称的属性,如果指定的名称为空或为空,或者属性的数字格式不正确,则返回null。

你应该使用 Integer.parseInt

扫码关注云+社区