我知道有一种方法可以用简短的形式编写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行的简写成一行吗?
当前回答
使用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(名称);
你可以这样让它变得更简单:
name = city.getName() == null ? city.getName() : "N/A"
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()的值(如果它不是空的话)。
name = ( (city.getName() == null)? "N/A" : city.getName() );
首先检查条件(city.getName() == null)。如果是,则将"N/A"赋值给name,或者简单地将name="N/A",或者将city.getName()中的值赋值给name,即name=city.getName()。
这里值得注意的事情:
条件在括号中,后面跟着一个问号。这就是为什么我写(city.getName() == null)?这里,问号就在条件后面。甚至很容易看/读/猜! 冒号(:)左边的值和冒号右边的值 (a)当condition为真时,赋给冒号左边的值,否则赋给变量冒号右边的值。
这里有一个参考:http://www.cafeaulait.org/course/week2/43.html
为了避免两次调用.getName(),我将使用
name = city.getName();
if (name == null) name = "N/A";