java Parse布尔值,可以为null

时间:2016-01-20 09:04:35

标签: java boolean

我注意到java.lang.Boolean类存在一个无法解析空值的问题。我知道它有parseBoolean静态方法,但由于它是签名状态,它只接受String而不是Object

换句话说,它具有以下特征:

public static boolean parseBoolean(String s)

但不是:

Boolean.parseBoolean(Object)

检查布尔值而不落在NullPointerException上的最佳方法是什么?

3 个答案:

答案 0 :(得分:6)

尝试这种方法:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    Log.e("TRUNGDH", newConfig.fontScale + "<= fontScale");
}

答案 1 :(得分:1)

如果您希望解析返回true对象的falsenullBoolean,请查看Apache Commons Lang。 BooleanUtils的衬纸可以做到这一点。

https://commons.apache.org/proper/commons-lang/javadocs/api-2.4/org/apache/commons/lang/BooleanUtils.html#toBooleanObject(java.lang.String)

BooleanUtils.toBooleanObject(null) == null
BooleanUtils.toBooleanObject("true") == true
BooleanUtils.toBooleanObject("false") == false
BooleanUtils.toBooleanObject("YES") == true
BooleanUtils.toBooleanObject("nO") == false

答案 2 :(得分:-1)

您可以将其与Boolean.TRUEBoolean.FALSE进行比较。例如:

if (Boolean.TRUE == Box.modeled()) { //do somthing }