java - test !"".equals(someString) 的值是多少

标签 java coding-style

在一个我一直试图熟悉的项目中,我遇到了一个看起来像这样的方法:

public boolean testString(String string){
    return string != null && !"".equals(string);
}

用这种方式而不是先用变量来测试字符串是否为空有什么值(value)?我理解为什么我们会在 C 中看到常量优先(Yoda 语法),但是在 Java 中有任何理由对方法调用这样做吗?

注意:我确实了解 NullPointerException,这在这种情况下是不可能的。特别是在这种情况下,我正在寻找这样做的值(value)。

最佳答案

在这种情况下,它没有什么区别,因为它已经测试过是否为 null。通常你这样做是为了确保你不会在空引用上调用成员(导致 NullPointerException),即

"test".equals(myString)

永远不会抛出空指针异常而

myString.equals("test")

如果 myString 为 null,则执行。所以基本上,第一个测试确保它是一个字符串(非空)并且它等于“测试”。

关于java - test !"".equals(someString) 的值是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5345080/

相关文章:

javascript - ESlint 强制将函数等的右括号与左括号放在同一列上

java - 静态方法的 doAnswer - PowerMock

java - 在不降低应用程序速度或崩溃的情况下将大尺寸照片放入小 ImageView 的问题

java - 检查有多少根是真实的

Silverlight ~ MVVM ~ 根据模型值动态设置 Style 属性

两行不同的c语法?

android - 如何将多个主题属性添加到 Android Manifest 上的同一个 Activity ?

Java : Pattern matcher returns new lines unexpectedly

java - 如何在JTable(JAVA)中显示FK ID的引用

python - 排除以特定字符开头的列表元素的最pythonic方法是什么?