gpt4 book ai didi

java - 三元运算符的奇怪行为

转载 作者:行者123 更新时间:2023-12-01 16:44:51 24 4
gpt4 key购买 nike

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

POI:“替换”

替换取决于三元运算,如下所示:

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

requestItem.getPoi() 返回 String 类型,我想检查它是否返回 String 或 null。如果为空,我想设置'#####'。

问题出在 requestItem.getPoi() != null 上? requestItem.getPoi() : "#####"

当我在调试器中评估此值时,当 requestItem.getPoi() 返回 null 时,调试器会抛出“类型不匹配:无法从 String 转换为 void”。

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

最佳答案

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

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

关于java - 三元运算符的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53780180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com