我知道有一种方法可以用简短的形式编写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行的简写成一行吗?
当前回答
name = city.getName()!=null?city.getName():"N/A"
其他回答
在Java 8+中,你有两个解决方案。 带有简短的if语句:
Objects.nonNull(city.getName())? city.getName(): "N/A";
在你的情况下,更好的解决方案是使用可选:
Optional.ofNullable(city)
.map(City::getName)
.orElse("N/A");
你可以用简短的形式写出if, else if, else语句。例如:
Boolean isCapital = city.isCapital(); //Object Boolean (not boolean)
String isCapitalName = isCapital == null ? "" : isCapital ? "Capital" : "City";
这是的缩写形式:
Boolean isCapital = city.isCapital();
String isCapitalName;
if(isCapital == null) {
isCapitalName = "";
} else if(isCapital) {
isCapitalName = "Capital";
} else {
isCapitalName = "City";
}
1. 您可以删除括号和换行符。
if (city.getName() != null) name = city.getName(); else name = "N/A";
2. 你可以在java中使用?:操作符。
语法:
Variable = Condition ? BlockTrue : BlockElse;
所以在你的代码中你可以这样做:
name = city.getName() == null ? "N/A" : city.getName();
3.为Boolean指定条件结果
boolean hasName = city.getName() != null;
额外:好奇者
在一些基于JAVA的语言中,比如Groovy,你可以使用这种语法:
name = city.getName() ?: "N/A";
操作符?:赋给我们所请求的变量返回的值。在本例中,city.getName()的值(如果它不是空的话)。
在Java 8中:
name = Optional.ofNullable(city.getName()).orElse("N/A")
简单明了:
String manType = hasMoney() ? "rich" : "poor";
长版:
String manType;
if (hasMoney()) {
manType = "rich";
} else {
manType = "poor";
}
或者我如何使用它来让其他代码读者更清楚:
String manType = "poor";
if (hasMoney())
manType = "rich";