次のようなケースクラスがある場合:
case class Foo(x: String, y: String, z: String)
そして、次のような 2 つのインスタンスがあります。
Foo("x1","y1","z1")
Foo("x2","y2","z2")
結果が次のようになるように、フィールド z を除いて、インスタンス 1 をインスタンス 2 にマージすることは可能ですか?
Foo("x1","y1","z2")
私のユースケースは、Scala API を介してバックボーン アプリに JSON オブジェクトを渡すことです。バックボーン アプリは、保存/更新できるように同じ構造の JSON を返します。これらの JSON オブジェクトは、簡単に Scala を操作できるようにケース クラスとして解析されます。ただし、一部のフィールドはクライアント側で更新しないでください (creationDate など)。今のところ、私は手動でマージを行っていますが、強化されたコピー機能のような、より一般的なソリューションが必要です。
私が欲しいのは次のようなものです:
instanceFromDB.updateWith(instanceFromBackbone, excludeFields = "creationDate" )
しかし、私はそれがタイプセーフであることを望みます:)
編集: 私のケースクラスにはさらに多くのフィールドがあり、明示的にマージしないように言わない限り、デフォルトの動作でフィールドをマージしたいと思います。