我有奇怪的情况,调试后无法解释。我想用该模式设置标签文本:
兴趣点:“替换”
替换取决于以下三元操作:
label.setText("POI: " + requestItem.getPoi() != null ? requestItem.getPoi() : "#####")
requestItem.getPoi()
返回String的类型,我想检查是否返回String或null。如果为null,我要设置'#####'。
问题出在requestItem.getPoi() != null ? requestItem.getPoi() : "#####"
当我在requestItem.getPoi()返回null的调试器中评估此值时,调试器将引发“类型不匹配:无法从String转换为void”。
任何人都知道此操作有什么问题吗?
答案 0 :(得分:5)
问题是由运算符优先级引起的,必须将括号之间的三元表达式括起来。试试这个:
"POI: " + (requestItem.getPoi() != null ? requestItem.getPoi() : "#####")