java - 测试两个对象在结构上是否相等?

标签 java

我有一个包含不同部门和员工的公司对象。我已成功序列化我的对象并将其再次加载到我的程序中。

现在我想测试这两个对象在结构上是否相等。 java 是否为我提供了比较这些对象的工具?

我应该补充一点,我的对象有一个充满其他对象的列表。

或者我必须为此编写自己的测试吗?

编辑:

class test{

public int a

}
test t = new test();
t.a = 1;

test t1 = new test();
t1.a = 1;

现在我想根据值比较 t 和 t1 是否相同。

最佳答案

您可以重写 Test 类中的 equals 方法,如下所示:

public boolean equals(Object other) {
    if (other == null) {
       return false;
    }
    if (!(other instanceof Test)) {
       return false;
    }
    return this.a == ((Test) other).a;
}

另外:当重写 equals 时,您也应该始终重写 hashCode 方法。请参阅此引用以了解原因:Why always override hashcode() if overriding equals()?

关于java - 测试两个对象在结构上是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16266229/

相关文章:

java - Java 数组是同构的,而 ArrayList 不是,这是什么意思?

java - 在android中格式化数字0.000

java - 如何检测用户取消 AccountPicker 对话框 Android Eclipse

java - 在 spring mvc 中获取 java.lang.NullPointerException

java - 创建字符串或整数条件

java.lang.ClassNotFoundException : org. 代码豪斯.jackson.JsonFactory

java - 每行或每列迭代二维数组的正确方法是什么?

java - 应用程序关闭后 Android TimerTask 未完成

java - 身份验证在 HttpClient 中失败但在浏览器中正常

java - 导入类时的奇怪行为