嗨,下面的语句会引发错误。它说“不是声明”
map.containsKey(1)? someObject.setFlag(true) : map.put(1,"hello");
Run Code Online (Sandbox Code Playgroud)
是否需要将返回值存储在语句左侧的某个变量中?
您将Ternary运算符用作statement,而不是assignment。在你的情况下,你应该使用if else
if(map.containsKey(1)) {
someObject.setFlag(true)
}else{
map.put(1,"hello");
}
Run Code Online (Sandbox Code Playgroud)
这是三元运算符的 java文档。
三元运算符是一个表达式,而不是一个语句。它通常用于根据某些条件设置变量的值。在这种情况下,您需要将结果分配给一个变量以使其成为一条语句:
String result = map.containsKey(1) ? someObject.setFlag(true) : map.put(1,"hello");
Run Code Online (Sandbox Code Playgroud)
(注意:您应该选择一个更好的变量名称。)
我认为您在这里仍然会遇到问题,因为setFlag()可能不会返回String. 此外,由于您正在创建副作用,因此您应该将其替换为if声明。
| 归档时间: |
|
| 查看次数: |
3485 次 |
| 最近记录: |