在Java中,Boolean.valueOf(String)和BooleanUtils.toBoolean(String)分别是什么意思?

3

我有一个问题,就是在Boolean.valueOf(String)BooleanUtils.toBoolean(String)之间有什么区别。

我使用的应用程序中,代码BooleanUtils.toBoolean(defaultInfoRow.getFolderType())Boolean.valueOf(defaultInfoRow.getFolderType())都可以正常工作。

我有一些疑问:

1.哪个性能更好?

2.哪个更快?

3.在什么情况下会优先选择Boolean.valueOf(String)

谢谢!


1
根据Apache文档,他们的版本比JDK的快4倍。 - Radiodef
3
这些方法之间的选择与性能毫无关系,因为它们执行不同的任务。请查阅文档(或以下回答)以获取更多信息... - jahroy
1
@Radiodef - 比JDK 1.4快4倍,并且输出不同... - jahroy
@jahroy 我同意这并不重要,但是文档确实声称它更快。 - Radiodef
4个回答

7
使用API最符合您应用程序需求的那个。 Boolean.valueOf(String) 在参数为字符串"true"时返回trueBooleanUtils 将把几个常见的"true"值视为true。性能问题非常小,可以忽略不计。

5

您可以忽略性能

BooleanUtils 处理诸如 OnTrueYes 等情况,而 Boolean.valueOf() 则不会处理。


1
每个方法的行为都不同。因此性能是无关紧要的。您应该根据所需的行为进行选择:
当您仅想返回等于“true”(不区分大小写)的输入时,请使用{{link1:Boolean.valueOf()}}。
当您希望其他输入返回true(例如“on”或“yes”)时,请使用{{link2:BooleanUtils.toBoolean()}}。
当您对方法有疑问时,请始终查阅文档:

1

就性能考虑而言,我不会为任何一个做出选择。然而,如果我有使用外部第三方库(例如Apache commons lib)的限制,我会坚持使用标准JDK Boolean.valueOf(String),尽管我会失去一些关于String输入可能值的灵活性-请参见之前的答案。

编辑-这是在回答OP问题中的第3点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接