很遗憾是一个痛苦...我有: HashMap<String, String> o
o.get('uses_votes'); // "1"
Run Code Online (Sandbox Code Playgroud)
然而...
Boolean.parseBoolean(o.get('uses_votes')); // "false"
Run Code Online (Sandbox Code Playgroud)
我猜这....parseBoolean不接受标准0 = false 1 = true?
我做错了什么或者我必须将我的代码包装在:
boolean uses_votes = false;
if(o.get('uses_votes').equals("1")) {
uses_votes = true;
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Bal*_*usC 83
它只接受"true"表示布尔值的字符串值true.你能做的最好的是
boolean uses_votes = "1".equals(o.get("uses_votes"));
Run Code Online (Sandbox Code Playgroud)
或者,如果Map实际上代表了"权利",我认为Javabean要好得多.或者,如果它代表配置设置,您可能需要查看Apache Commons Configuration.
Saq*_*qib 25
我有一个小的实用程序函数将所有可能的值转换为布尔值.
private boolean convertToBoolean(String value) {
boolean returnValue = false;
if ("1".equalsIgnoreCase(value) || "yes".equalsIgnoreCase(value) ||
"true".equalsIgnoreCase(value) || "on".equalsIgnoreCase(value))
returnValue = true;
return returnValue;
}
Run Code Online (Sandbox Code Playgroud)
如果你想要获得C的行为(0 == false以及其他一切true),你可以这样做:
boolean uses_votes = Integer.parseInt(o.get("uses_votes")) != 0;
Run Code Online (Sandbox Code Playgroud)
我知道这是一个旧线程,但是从C语法中借用呢:
(o.get('uses_votes')).equals("1") ? true : false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104957 次 |
| 最近记录: |