我知道有一种方法可以用简短的形式编写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;
}

其他回答

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");

使用org.apache.commons.lang3.StringUtils:

name = StringUtils.defaultString(city.getName(), "N/A");

这是一行代码

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

下面是它如何工作的例子,在js文件中运行下面的代码并理解结果。这("Data" != null)是条件,因为我们在正常的if()和"Data"是语句时,这个条件为真。这个“:”充当else和“N/A”是else条件的语句。希望这能帮助你理解其中的逻辑。

name = ("Data" != null) ?"Data": "N/A"; console.log(名称);