如何将字符串对象转换为布尔对象?

2022-08-31 04:48:44

如何将对象转换为对象?StringBoolean


答案 1

尝试(取决于您想要的结果类型):

Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");

优势:

  • 布尔值:这不会创建新的布尔值实例,因此性能更好(并且垃圾回收更少)。它重用 或 的两个实例。Boolean.TRUEBoolean.FALSE
  • 布尔值:不需要实例,使用基元类型。

官方文档在Javadoc中。


更新:

也可以使用自动装箱,但它具有性能成本。
我建议只在你必须自己施法时才使用它,而不是在施法可以避免的时候。


答案 2

使用 Boolean.valueOf(string)Boolean.parseBoolean(string) 时,您必须小心谨慎。这样做的原因是,如果 String 不等于 “true”(忽略大小写),则方法将始终返回 false。

例如:

Boolean.valueOf("YES") -> false

由于这种行为,我建议添加一些机制,以确保应转换为布尔值的字符串遵循指定的格式。

例如:

if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
    Boolean.valueOf(string)
    // do something   
} else {
    // throw some exception
}