34

Java中是否有一种实用方法可以转换Booleanboolean空引用并自动将其处理Boolean为假?

4

7 回答 7

79

怎么样:

boolean x = Boolean.TRUE.equals(value);

? 那是一个单一的表达式,它只会评估trueifvalue是非空的并且是一个真实的Boolean引用。

于 2014-07-25T07:40:02.547 回答
7

在 java 8 上,您可以执行以下操作:

static boolean getPrimitive(Boolean value) {
        return Optional.ofNullable(value).orElse(false);
}

你也可以这样做:

static boolean getPrimitive(Boolean value) {
        return Boolean.parseBoolean("" + value);
}
于 2014-07-25T09:10:34.277 回答
2

您在寻找现成的实用程序吗?那么我认为 Commons-Lang BooleanUtils就是答案。它有一个方法 toBoolean(Boolean bool)

于 2014-07-25T07:41:49.913 回答
1

我不知道它是否存在。我会写一个像这样的衬线:

public static boolean getPrimitiveBoolean(Boolean bool) {    
   return bool == null ? false : bool.booleanValue();
}
于 2014-07-25T07:40:55.653 回答
0

这将是一种您可以编写的方法来解决问题。如果布尔值为空,这将返回 false。

public static boolean toBooleanDefaultIfNull(Boolean bool) {
    if (bool == null) return false;
    return bool.booleanValue();
}
于 2014-07-25T07:40:16.260 回答
0

如果您正在打高尔夫球,那么在自动拆箱之后的显式空检查会比规范答案短。

boolean b=o!=null&&o; // For golfing purposes only, don't use in production code
于 2021-03-24T12:22:26.490 回答
-1

这将处理空值和布尔值

booleanVal != null && Boolean.parseBoolean("" + booleanVal)
于 2020-12-03T18:07:25.160 回答