java - 如何检查实现内容相等性的对象中的引用相等性?

标签 java object methods

...换句话说: 假设我有 2 个这样声明的字符串:

String one = new String("yay!");
String two = new String("yay!");

这两个String是两个不同的对象,但是如果我运行

if(one.equals(two))
   System.out.println("equals() returns true.");

我得到“equals() 返回 true”。 这是因为 String 类重写了 equals() 方法来实现内容级别相等。 但是,我需要访问一个引用级别相等性(如对象中实现的那个)来区分对象一和对象二。 我该怎么做?

我试过这个:

one.getClass().getSuperclass().equals();

尝试调用 String 的 Object equals() 方法,但没有成功。

有什么建议吗?

最佳答案

如果你想检查引用,只需执行:

one == two

但是要小心字符串。有一种东西叫String constant pool所以他们可能指的是同一个对象。

关于java - 如何检查实现内容相等性的对象中的引用相等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9453317/

相关文章:

java - 调用方法时出现问题(扫雷)

java - 使用 Buffered Reader 将用户输入添加到数组中

java - 我如何在 linux 中直接执行一个 jar?

javascript - 从包含数组属性的基础对象有选择地创建一个新的对象数组

scala - Scala中对象的Mockito

javascript - 解析数据并按字母顺序按字母顺序排列

java - (Java) 卡在一个方法上

android - 方法 channel 在 Flutter 模块中不起作用

java - 正在使用 Kotlin Pair 但方法需要 android.util.Pair

java - 在 native 应用程序中使用 Appium 处理弹出窗口