刚上自己的,问题是,你给这不是一份声明中表达。
某项任务,然而,它的罚款:
import java.util.*;
public class Test {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();
String x = map.containsKey("A") ? "" : "";
}
}
我怀疑问题出在你还没有表现出一些代码。请给出更多的上下文 - 理想情况下,像我的一样简短但完整的程序,但它会显示错误。
编辑:既然你编辑的问题,你可能会得到不同的错误。条件运算符不是一个有效的独立语句,每个操作数都必须是非空表达式(还有一些其他注意事项)。因此,而不是这样的:
getResponseDataMap().containsKey("A") ?
a.setText(getResponseDataMap().get("A").toString()):""
我嫌疑你想:
a.setText(getResponseDataMap().containsKey("A") ?
getResponseDataMap().get("A").toString() : null);
不过,我会亲自写为:
Object response = getResponseDataMap().get("A");
a.setText(response == null ? "" : response.toString());
在另一方面,如果你只有要设置的文字时,地图中包含的关键,那么你应该回到你原来的if
stateme nt或可能:
Object response = getResponseDataMap().get("A");
if (response != null) {
a.setText(response.toString());
}
确实把一个支架周围的状况操作去除编译错误? – 2012-01-07 08:34:06
你能显示整个代码吗? – evilone 2012-01-07 08:34:25
添加spaces.Maybe编译器认为,“A”,“?”:“”,是一个String – shift66 2012-01-07 08:34:33