【发布时间】:2016-03-16 13:29:24
【问题描述】:
假设我们有一些 city 和 String getZIP() 方法。
如果 ZIP 为空,我想打印 ZIP 的值或不打印任何内容。
我可以在一行代码中用三元运算完成:
System.out.print(city.getZIP() == null ? "" : city.getZIP())
问题是:我可以在不调用.getZIP() 两次的情况下做同样的事情吗?
比如:
System.out.print(String zip = city.getZIP() == null ? "" : zip) //syntax error here
【问题讨论】:
-
那么 zip 将只存在于该范围内,这意味着它在您的其余代码中无用
-
你也可以在 print 调用之前创建变量并检查这个变量吗?
-
@Sloth 你为什么要这样做
-
@BalajiKrishnan 我正在寻找一种在一行代码中实现它的方法,而无需在三元运算之外创建额外的局部变量,也无需两次调用该方法。
-
您将如何从中受益。要么调用 getter 两次,要么得到一个额外的局部变量。我没有看到任何好处
标签: java ternary-operator