如何检查布尔值是否为空?

时间:2019-08-12 20:05:35

标签: java wrapper ternary-operator null-check

我想向我的三元运算符添加一个空检查,以检查Boolean isValue

public String getValue() {
    return isValue ? "T" : "F";
}

我的任务是:

  

如果布尔(对象)返回null怎么办?添加布尔检查并返回“”(如果为null,则返回空字符串)。

请注意,isValueBoolean,而不是boolean

3 个答案:

答案 0 :(得分:7)

三元运算符具有以下语法:

result = expression ? trueValue : falseValue;

表达式为trueValue时返回true,否则为falseValue

如果您要添加一个空检查,使得当Boolean isValuenull时,该方法将返回"",则对于三级数来说,它不是很可读运算符:

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。否则,它将正常检查该值,并分别为StringT返回Ftrue的{​​{1}}值。

答案 2 :(得分:1)

你可以做

return Optional.ofNullable(isValue).map(t -> t ? "T": "F").orElse("");