gpt4 book ai didi

java - 如何检查2个类实例是否相同

转载 作者:行者123 更新时间:2023-12-04 17:17:54 25 4
gpt4 key购买 nike

例如我有一个水果类。我创建了 2 个实例:

Fruit apple = new Fruit("apple");
Fruit orange = new Fruit("orange");

2 个实例的值不同,因此我正在寻找错误的答案。我重写了 .equals() 方法并编写了以下方法来进行测试:
@Override
public boolean equals(Object otherObject){
if(otherObject instanceof Fruit){
return true;
}
return false;
}

if(apple.equals(orange))
System.out.println("true");
else
System.out.println("false");

上述方法给了我正确的答案。根据我的理解,这是一个正确的响应,因为这只是测试它们是否属于同一类,这是真的。

但我无法测试实例本身的值。请指教。谢谢。

最佳答案

您应该包含您的 Fruit类,但这是一种方法

static class Fruit {
private String name;

public Fruit(String name) {
this.name = name;
}

@Override
public boolean equals(Object otherObject) {
// check for reference equality.
if (this == otherObject) {
return true;
}
if (otherObject instanceof Fruit) {
Fruit that = (Fruit) otherObject;
// Check for name equality.
return (name == null && that.name == null)
|| name.equals(that.name);
}
return false;
}
}

public static void main(String[] args) {
Fruit apple = new Fruit("apple");
Fruit apple2 = new Fruit("apple");

Fruit orange = new Fruit("orange");

if (apple.equals(orange))
System.out.println("true");
else
System.out.println("false");

// You can also use the shorter
System.out.println(apple.equals(apple2));
}

输出
false
true

关于java - 如何检查2个类实例是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21707840/

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