Java if 语句的缩写形式

新手上路,请多包涵

我知道有一种方法可以用简短的形式编写 Java if 语句。

 if (city.getName() != null) {
    name = city.getName();
} else {
    name="N/A";
}

有谁知道如何将上述5行的缩写形式写成一行?

原文由 Makky 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 703
2 个回答

使用三元运算符:

 name = ((city.getName() == null) ? "N/A" : city.getName());

我认为您的条件是倒退的 - 如果它为空,您希望该值为“N/A”。

如果城市为空怎么办?在那种情况下,您的代码 \* 就在床边了。我要添加另一张支票:

 name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());

原文由 duffymo 发布,翻译遵循 CC BY-SA 3.0 许可协议

为了避免调用 .getName() 两次,我会使用

name = city.getName();
if (name == null) name = "N/A";

原文由 Peter Lawrey 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题