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

标签 java

哪个 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/

相关文章:

java - 如何将文本读取字符串插入特定变量

java - 将事件传递给父 View ?

java - 如何在没有 HSSFWorkbook 实例的情况下设置单元格样式?

java - 基于注释的字符串验证

java - 将 Array<Object> 从一个 Activity 传递到另一个 Activity

java - 在 64 位窗口的 java 中从屏幕捕获创建视频

java - 未找到元素 : GAVE UP when using expectedconditions with phantomjs

Java:组件如何知道它的所有者

java - JOptionPane 对话框未打开(JOptionPane.showMessageDialog(null ,"File Recieved Sucessfully"))

java - 检查用户名和密码是否正确