gpt4 book ai didi

java - equals 方法未返回预期的 o/p

转载 作者:行者123 更新时间:2023-12-01 07:30:14 24 4
gpt4 key购买 nike

请解答我对equals()的疑问。我认为 equlas() 检查内容,如下所示例如,它应该打印 true,因为 t1 和 t1 的内容相同t2,但打印错误。为什么?

public class Test {
public static void main(String args[]) {
Test1 t1 = new Test1(10);
Test1 t2 = new Test1(10);
System.out.println(t1.equals(t2));
}
}

class Test1 {
int a ;
Test1( int x){
a = x ;
}
}

提前致谢

最佳答案

您需要重写 Test1 类中的 equals 以获得所需的行为。否则,该类将继承 equals from Object ,它仅确定两个引用是否引用同一个对象。在这里,您有不同的实例,因此结果为 false

引用链接的javadocs:

The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).

通常,您测试另一个对象是否属于同一类,然后比较各个字段是否相等。

关于java - equals 方法未返回预期的 o/p,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18493624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com