我知道有一种方法可以用简短的形式编写Java if语句。
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
有谁知道如何把以上5行的简写成一行吗?
我知道有一种方法可以用简短的形式编写Java if语句。
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
有谁知道如何把以上5行的简写成一行吗?
当前回答
我总是忘记如何使用?:三元运算符。这个补充的回答是一个快速的提醒。它是if-then-else的缩写。
myVariable = (testCondition) ? someValue : anotherValue;
在哪里
()保存if ? 意味着然后 :表示其他
这和
if (testCondition) {
myVariable = someValue;
} else {
myVariable = anotherValue;
}
其他回答
为了避免两次调用.getName(),我将使用
name = city.getName();
if (name == null) name = "N/A";
使用org.apache.commons.lang3.StringUtils:
name = StringUtils.defaultString(city.getName(), "N/A");
name = city.getName()!=null?city.getName():"N/A"
我总是忘记如何使用?:三元运算符。这个补充的回答是一个快速的提醒。它是if-then-else的缩写。
myVariable = (testCondition) ? someValue : anotherValue;
在哪里
()保存if ? 意味着然后 :表示其他
这和
if (testCondition) {
myVariable = someValue;
} else {
myVariable = anotherValue;
}
在Java 8+中,你有两个解决方案。 带有简短的if语句:
Objects.nonNull(city.getName())? city.getName(): "N/A";
在你的情况下,更好的解决方案是使用可选:
Optional.ofNullable(city)
.map(City::getName)
.orElse("N/A");