这个问题在这里已经有答案了:
为什么我需要重写java中的equals和hashcode方法(30个答案)
上个月关门了。
我有一节课
public class A
{
@Nonnull
private final String m_a;
@CheckForNull
private final B m_b;
@Nonnull
private final List<C> m_c;
@JsonCreator
public A(
@JsonProperty("a") @Nonnull final String a,
@JsonProperty("b") @CheckForNull final B b,
@JsonProperty("c") @Nonnull final List<C> c
)
{
m_a = a;
m_b = b;
m_c = checkNotNull(c);
}
// getters ...
}
如果两个a示例相等,您建议如何进行比较?
我可以使用jackson将json序列化为字符串( .writeValueAsString
)比较一下,但这并不便宜。如果我重写会更好吗 equals
以及 hashcode
而是比较每个领域?那是什么样子?
1条答案
按热度按时间cl25kdpy1#
覆盖
equals()
以及hashCode()
在课堂上A
以及C
,则可以通过A1.equals(A2)
有很多插件可以为您生成它们,例如,如果您使用intellij。