gpt4 book ai didi

java - String 的最佳技术等于比较

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:34:58 26 4
gpt4 key购买 nike

哪个 if block 更好?

private static void checkStr(String str) {

if (str.equals("exit")) {
System.out.println("It is equal");
}
if ("exit".equals(str)) {
System.out.println("It is equal");
}
}

最佳答案

通过第一种方法,您为 NullPointerExceptions 留出了余量。所以从我的角度来看,第二个更好。

对于常量的情况,您应该始终首选第二种方法而不是第一种方法。

"exit".equals(str)

可以找到详细的解释here


我个人更喜欢另一种方法。 Apache Commons - commons langObjectUtils.equals(Object, Object)。使用这种方法,即使使用 null 值,您也始终是安全的。

来自 documentation :

Compares two objects for equality, where either one or both objects may be null.

 ObjectUtils.equals(null, null)                  = true
ObjectUtils.equals(null, "") = false
ObjectUtils.equals("", null) = false
ObjectUtils.equals("", "") = true
ObjectUtils.equals(Boolean.TRUE, null) = false
ObjectUtils.equals(Boolean.TRUE, "true") = false
ObjectUtils.equals(Boolean.TRUE, Boolean.TRUE) = true
ObjectUtils.equals(Boolean.TRUE, Boolean.FALSE) = false

关于java - String 的最佳技术等于比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11700322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com