gpt4 book ai didi

java - x.clone().equals(x) 为何为 True

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

我已经尝试过这个实现,但我对类 x 的结果为 false

x.clone().equals(x)

X 类:

public class X implements Cloneable{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
protected Object clone()throws CloneNotSupportedException {
return super.clone();
}

}

主类:

public class ObjectCloneCopy {
public static void main(String[] args) throws CloneNotSupportedException {
X x = new X();
System.out.println("x.clone().equals(x) - " + x.clone().equals(x));
}
}

是否必须重载 hashcode() 和 equals() 才能得到 True ?

在不重写这些方法的情况下,这个语句如何给出 true?

X x1 = x;
x1.equals(x)

解释一下这怎么可能是真的,我在这个 link 中看到过

最佳答案

您需要重写 X 类中的 equals()hashCode() 方法。

否则你无法从x.clone().equals(x)得到正确的结果

关于java - x.clone().equals(x) 为何为 True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25284762/

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