gpt4 book ai didi

java - 两个对象上的 assertEquals()

转载 作者:行者123 更新时间:2023-11-29 07:27:56 31 4
gpt4 key购买 nike

当使用 assertEquals() 比较两个对象时,是否考虑查看内部结构,即。对象的属性?

假设我有一个类 A,如下所示:

public class A {
private int ID;
private String name;
private String address;
}

假设提供的对象(即要与 A 的对象进行比较)的属性顺序不同,那么 assertEquals() 会做什么?有没有一种可靠的方法可以换一种方式来做?

最佳答案

@JimGarrison 说得很对 - assertEquals() 只会调用对象的 equals() 方法来确定是否相等。

要回答您的问题,“是否有可靠的方法以其他方式做到这一点?”,如果您出于某种原因无法在您的类上正确实现 equals() 方法,并且您想根据对象字段的值评估对象的相等性,请考虑使用 EqualsBuilder's reflectionEquals() method .它相当强大,允许您排除任何您想要的字段。

要回答您的其他问题,“假设提供的对象的属性顺序不同,那么 assertEquals() 会做什么?”,它所做的只是调用 equals( ) 另一个实例上的方法。例如,如果您调用 assertEquals(a, b),那么最终将调用 a.equals(b)。但是,如果您调用 assertEquals(b, a),那么最终会调用 b.equals(a)

希望对您有所帮助。

关于java - 两个对象上的 assertEquals(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47604960/

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