Raf*_*ski 0 java string ternary-operator
我有奇怪的情况,调试后我无法解释.我想用该模式设置标签文本:
POI:"替代"
替换取决于三元操作,如下所示:
label.setText("POI: " + requestItem.getPoi() != null ? requestItem.getPoi() : "#####")
Run Code Online (Sandbox Code Playgroud)
requestItem.getPoi()返回String的类型,我想检查它是否返回String或null.如果为null我想设置'#####'.
问题在于 requestItem.getPoi() != null ? requestItem.getPoi() : "#####"
当我在调试器中评估此值时,requestItem.getPoi()返回null调试器抛出"类型不匹配:无法从String转换为void".
任何人都知道这个操作有什么问题?
问题是由运算符优先级引起的,您必须在括号之间包围三元表达式.试试这个:
"POI: " + (requestItem.getPoi() != null ? requestItem.getPoi() : "#####")
Run Code Online (Sandbox Code Playgroud)