java - 为什么这个表达式返回 true

标签 java string expression

(pass[i]!= null) && (pass[i].getName()!= "nullnull") <--当我调试它时返回 true,即使 pass[i].getName() == "nullnull" 的值当我在调试时使用 Eclipse 中的“表达式”窗口检查它时

我使用输入对话框输入两个名字

String firstName = (String)JOptionPane.showInputDialog("Enter First Name");
String lastName = (String)JOptionPane.showInputDialog("Enter Last Name");

返回

public String getName()
    {
        return FirstName + LastName;
    }

最佳答案

您有两个具有相同值的不同字符串,但您通过引用对它们进行比较。

您需要通过编写 "nullnull".equals(pass[i].getName()) 来按值比较它们。
即使 getName() 返回 null,相反的顺序也会起作用。

关于java - 为什么这个表达式返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6320139/

相关文章:

java - 无法导入 "GestureDetectorCompat"类

string - 在 x86 程序集中附加两个字符串

java - 用于评估 Java 对象上的逻辑表达式的库

c - 如何从c中的char字符串中获取每个元素?

php - 分隔字符串中以空格分隔的单词

c++ - CRTP 和模板化表达式

c++ - 我想详细了解C++中的表达式和语句之间的区别。请举一个具体的例子来说明

java - 既然编译器根据引用类型而不是实际的对象类型来调用方法,为什么会调用对象的方法呢?

java - 在 Windows 服务器上使用 Coldfusion\Java 创建 TAR 文件 (tarball)

java - BlowFish 解密 - nCFB 模式