我有两个同一类的对象。该类包含许多其他不同类型的对象,例如 List<>、...
确定这两个值是否相同的最佳方法是什么?我正在尝试使用 hashcode 函数,但它似乎对我不起作用。
public class MyClass{
List<OtherClass> myList;
String foo;
SubClass mySubClass;
public MyClass(values...){ ... }
...
}
MyClass obj1 = new MyClass(values...);
MyClass obj2 = new MyClass(values...); // same values with obj1
if(obj1.hashcode() == obj2.hashcode()){
System.out.println("This is what I want");
}else{
System.out.println("This is what happens");
}
最佳答案
您需要重写 MyClass 的 equals() 和 hashcode() 方法。
您的 ide 可能可以为您做到这一点。
你想要的是深度比较。 equals 方法应该进入每个列表并迭代和比较。
hashcode应该使用每个元素的hashcode来生成hashcode。
关于java - Java中如何检查两个对象是否具有相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48311904/