我知道有一种方法可以用简短的形式编写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, 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";
}
其他回答
我总是忘记如何使用?:三元运算符。这个补充的回答是一个快速的提醒。它是if-then-else的缩写。
myVariable = (testCondition) ? someValue : anotherValue;
在哪里
()保存if ? 意味着然后 :表示其他
这和
if (testCondition) {
myVariable = someValue;
} else {
myVariable = anotherValue;
}
方法是用三元运算符:
name = city.getName() == null ? city.getName() : "N/A"
然而,我相信你在上面的代码中有一个拼写错误,你的意思是说:
if (city.getName() != null) ...
name = city.getName()!=null?city.getName():"N/A"
使用三元运算符:
name = ((city.getName() == null) ? "N/A" : city.getName());
我认为你有反向的条件-如果它是空的,你想要的值是“N/A”。
如果城市为空呢?在这种情况下,你的代码就会完蛋。我还要再检查一下:
name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());
为了避免两次调用.getName(),我将使用
name = city.getName();
if (name == null) name = "N/A";