当前位置: 首页 > 知识库问答 >
问题:

java解析布尔,可能是空的布尔

邹桐
2023-03-14

我注意到java有一个问题。它不能解析空值的布尔类。我知道它有parseBoolean静态方法,但它的签名声明它只接受String,而不接受对象

换句话说,它有以下签名:

public static boolean parseBoolean(String s)

但不是:

Boolean.parseBoolean(Object)

检查布尔值而不陷入NullPointerException的最佳方法是什么?

共有3个答案

赖渊
2023-03-14

您可以将其与布尔值进行比较。TRUE布尔值。错误。例子:

if(Boolean. TRUE==Box.modeled ()) { //做某事}

司空通
2023-03-14

如果您希望您的解析返回truefalsenull作为Boolean对象,请查看Apache Commons Lang。

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
安坚诚
2023-03-14

试试这种方法:

Boolean.TRUE.equals(yourObj);
 类似资料:
  • 问题内容: (2)和(4)有什么区别? (3)和(5)有什么区别? 为什么在(3)和(6)中给出错误的结果? 问题答案: 除4外,所有这些都依赖于运算符的优先级。 在Java中,优先于。 这意味着2实际上是“读取”的: 因此,第一个的右侧操作数是一个布尔表达式,它将两个对象引用彼此进行比较(事实上,它们在这里都是s都是无关紧要的),在这里它们是不相同的。因此,右侧操作数为boolean 。 但是由

  • 问题内容: 我想使用argparse解析布尔命令行参数,写为“ –foo True”或“ –foo False”。例如: 但是,以下测试代码无法满足我的要求: 可悲的是,计算结果为。即使我更改为,情况也是如此,这令人惊讶,因为评估为。 如何获取argparse进行解析,以及它们的小写字母形式是什么? 问题答案: 另一个解决方案使用了先前的建议,但存在来自以下情况的“正确”解析错误: 这对于使用默认

  • 问题内容: 如何检查布尔值是否为null?因此,如果我知道“ hideInNav”为空。如何阻止它进一步执行?像下面这样的东西似乎不起作用,但是为什么呢? 问题答案: 只能是或因为它是原始数据类型(+ 变量的默认值为)。如果要使用值,则可以改用类。布尔是一种引用类型,这就是您可以分配给布尔“变量”的原因。例:

  • 问题内容: 我想使用argparse解析布尔命令行参数,写为。例如: 但是,以下测试代码不能满足我的要求: 可悲的是,计算结果为True。即使我更改为,情况也是如此,这令人惊讶,因为评估为。 如何获取进行解析,以及它们的小写字母形式是什么? 问题答案: 另一个解决方案使用了先前的建议,但存在来自以下情况的“正确”解析错误: 这对于使用默认值进行切换非常有用。例如 允许我使用:

  • null 例如,我在清单中定义了两个变量: 当调试角色中这些变量的类型时······ ...然后变成,但是被解释为: 我不得不在执行生产剧本后艰难地意识到这一点,运行一些不应该运行的东西,因为在库存中变量设置为“false”而不是“false”。因此,我真的很想找到一个明确的答案,关于Ansible如何理解布尔值,以及它如何依赖于变量的定义位置/方式。为了保险起见,我应该简单地总是使用大写的tru

  • 我很难让Thymeleaf渲染我的视频。下面的示例html: 我得到: 原因:org。xml。萨克斯。SAXParseException:与元素类型“video”关联的属性名“controls”后面必须跟“=”字符。 如何让Thymeleaf尊重属性? 谢谢