Apache Commons BeanUtils.cloneBeanに相当する純粋なScalaはありますか?Apache Commons Beanutilsに相当する純粋なScalaはありますか?
私はbeanutilsを使うことができましたが、@ scala.reflect.BeanInfoを自分のscalaクラスに追加する必要があります。
クラスAとクラスBがある場合、クラスAのオブジェクトからすべてのフィールドをコピーしてクラスBの新しいオブジェクトを作成する方法が必要です。同じ名前とタイプ。
これは、優秀なcasbahとSalatを使ってMongoDBデータベースからデータを読み込み、データを広範な形に変換し、新しいMongoDBデータベースに書き込むからです。だから共通の分野では、私はちょうど1行にすべての共通のフィールドをコピーし、各フィールドのコードを記述する必要はなく、次に異なるフィールドを変換します。
おそらく、手動で各フィールドをコピーするのは正しい方法です。これはコピーする内容を明示的に示しているためです。私はクラスBのコンストラクタに値を渡すことができました。
クラスBが完了するためにクラスAよりも多くのフィールドを必要とする場合はどうなりますか? Beanスタイルのクラスは、Beanが 'null'を使うことに依存しているため、Scalaスタイルではありません。 –
こんにちはダン、ご意見ありがとうございます。はい、私は一種の感知されたbeanutilsは慣用的なScalaではなかったので、私の質問です。クラスBがより多くのフィールドを必要とする場合、私は可変オブジェクトを使うことができますが、これをいつでも実装できるようになると、クラスAからクラスBへの各フィールドを手動で転記しますケースクラスのコンストラクタです。いくつかのフィールドはリテラルコピーであり、他のフィールドは複数のフィールドに分割され、他のフィールドは計算されるか、データソースから供給されます。 – foolshat