我想向我的三元运算符添加一个空检查,以检查Boolean isValue
:
public String getValue() {
return isValue ? "T" : "F";
}
我的任务是:
如果布尔(对象)返回null怎么办?添加布尔检查并返回“”(如果为null,则返回空字符串)。
请注意,isValue
是Boolean
,而不是boolean
。
答案 0 :(得分:7)
三元运算符具有以下语法:
result = expression ? trueValue : falseValue;
表达式为trueValue
时返回true
,否则为falseValue
。
如果您要添加一个空检查,使得当Boolean
isValue
为null
时,该方法将返回""
,则对于三级数来说,它不是很可读运算符:
String getValue() {
return isValue == null ? "" : (isValue ? "T" : "F");
}
用if
语句可以更好地表达这样的语句。该方法的主体将变为
final String result;
if (isValue == null) {
result = "";
} else if (isValue) {
result = "T";
} else {
result = "F";
}
return result;
答案 1 :(得分:3)
您使用的三元运算符语法不正确,正如注释中指出的那样,该语法应为isValue ? "T" : "F"
。我建议使用将三元运算符与标准if
语句混合在一起的解决方案,以检查null
的值。
以下是该解决方案的外观:
public String getValue() {
if (isValue == null) {
return "";
}
return isValue ? "T" : "F";
}
这将首先检查null
,如果值为String
,则返回一个空的null
。否则,它将正常检查该值,并分别为String
或T
返回F
或true
的{{1}}值。
答案 2 :(得分:1)
你可以做
return Optional.ofNullable(isValue).map(t -> t ? "T": "F").orElse("");