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

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

有谁知道如何把以上5行的简写成一行吗?


当前回答

这是一行代码

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(名称);

其他回答

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

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

使用三元运算符:

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

我认为你有反向的条件-如果它是空的,你想要的值是“N/A”。

如果城市为空呢?在这种情况下,你的代码就会完蛋。我还要再检查一下:

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

简单明了:

String manType = hasMoney() ? "rich" : "poor";

长版:

      String manType;
    if (hasMoney()) {
        manType = "rich";
    } else {
        manType = "poor";
    }

或者我如何使用它来让其他代码读者更清楚:

 String manType = "poor";
    if (hasMoney())
        manType = "rich";

你可以这样让它变得更简单:

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