異なる型の (そして型階層に共通のスーパークラスを持たない) 2 つの複雑なオブジェクトを比較する必要がありますが、論理的には同等である可能性があります。問題は、オブジェクトが等しくない場合に比較の結果に関する情報を返す方法にあります。オブジェクトが等しくない理由 (どのフィールドが異なり、どのように異なるのか) を呼び出し元に通知したいと思います。
これまでのオプションは次のとおりです。
- 文字列を返す
- 例外をスローする
しかし、私はそれらが非常にエレガント/良いとは思いません。
また、フィールド比較を JUnit から assertEquals に委譲し、比較テストを行わずに JUnit に基づいて比較を行う方法はありますか?