Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 三元算子的奇异行为_Java_String_Ternary Operator - Fatal编程技术网

Java 三元算子的奇异行为

Java 三元算子的奇异行为,java,string,ternary-operator,Java,String,Ternary Operator,我有一个奇怪的情况,调试后我无法解释。我想用该模式设置标签文本: POI:“替换” 更换取决于三元操作,如下所示: label.setText("POI: " + requestItem.getPoi() != null ? requestItem.getPoi() : "#####") requestItem.getPoi()返回字符串的类型,我想检查它是否返回字符串或null。如果为空,我想设置“#####” 问题在于requestItem.getPoi()!=无效的requestItem

我有一个奇怪的情况,调试后我无法解释。我想用该模式设置标签文本:

POI:“替换”

更换取决于三元操作,如下所示:

label.setText("POI: " + requestItem.getPoi() != null ? requestItem.getPoi() : "#####")
requestItem.getPoi()
返回字符串的类型,我想检查它是否返回字符串或null。如果为空,我想设置“#####”

问题在于
requestItem.getPoi()!=无效的requestItem.getPoi():“#####”

当我在debugger中计算此值时,当requestItem.getPoi()返回null时,调试器抛出“类型不匹配:无法从字符串转换为void”


有人知道这个操作有什么问题吗?

这个问题是由运算符优先级引起的,必须将三元表达式括在括号之间。试试这个:

"POI: " + (requestItem.getPoi() != null ? requestItem.getPoi() : "#####")

该问题是由运算符优先级引起的,必须将三元表达式括在括号之间。试试这个:

"POI: " + (requestItem.getPoi() != null ? requestItem.getPoi() : "#####")

Óscar López比我快:D但我有一点帮助,如果你尝试调试这样的东西,你可以尝试将东西提取到变量中,比如
String poiToPrint=requestItem.getPoi()!=无效的requestItem.getPoi():“#####”
。那么你就会看到它的价值了。(这个小片段也解决了你的问题:)(斯卡尔·洛佩斯比我快:D但我有一点帮助你,如果你尝试调试这样的东西,你可以尝试将东西提取到变量中,比如
String poiToPrint=requestItem.getPoi()!=无效的requestItem.getPoi():“#####”
。那么你就会看到它的价值了。(这个小片段也解决了您的问题:))