哪个 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 lang有 ObjectUtils.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/