比较 Java POJO 最简单的方法是什么

What is the easiest way to compare Java POJO

我有一个class

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) 并进行比较,但这并不便宜。如果我覆盖 equalshashcode 并比较每个字段是否更好?那它看起来像什么?

Override equals() and hashCode() in class A and C,然后你可以通过A1.equals(A2)[=16比较两个实例=]

并且有很多插件可以为您生成它们,example if you are using Intellij