JAXBツールから生成されたpojos、それらのいくつかのドメインクラスなどがあります。大きなアプリケーションでは、オブジェクトの1つのセットからデータを取得し、オブジェクトの別のセットに入れなければなりません。データを使用する能力が異なります。Javaオブジェクト間でデータをコピーする最速の方法は何でしょうか?
これを行うさまざまな方法があります。オブジェクトマッピングフレームワークは明白な選択です。しかし、堅実なコードベースとコミュニティを持つこれらのフレームワークのほとんどは反射を使用します(dozerなど)
訪問者パターンにpojosとより複雑なJavaクラスを採用するアダプターの組み合わせを使用しています。アダプターを歩いているビジターは、オブジェクトの1セットを歩き、そのプロセスで別のオブジェクトセットを作成します(通常、オブジェクトには親/子/ツリータイプの参照があります)。特に、新しい文字列などを作成するのではなく、利用可能な最速の方法でなければなりません。
他の方法はありますか?メモリ内のバイト配列へのシリアライゼーションのいくつかの並べ替え、その後、逆シリアル化?それはパフォーマンスの点で訪問者ベースのコピーを打つことができますか?私はドーザーのような反射に基づくアプローチに不公平なのですか?これはアプリケーションの重要な操作です。そのため、すべての改善が全体的なパフォーマンスを大幅に向上させる可能性があります。
オブジェクトは直列化可能にするために 'serializable'を実装する必要はありませんか? – bdares
@bdares:それは特定のアプローチに従うための要件です。すべてのオブジェクトがシリアライズ可能であると仮定します。それに向けてフレームワークを持ちますか? – mahonya