1

Java Bean から非 Bean POJO (セッターのないサードパーティ ライブラリ オブジェクト) へのオブジェクト プロパティ マッピングを実行しようとしています。ソース コードを観察すると、そこにあるオブジェクト マッパー ライブラリは、プロパティ値セットのセッター メソッドに依存しています。

私の質問は、そのような非 Bean POJO を JavaBean にラップするライブラリはありますか? (基本的に、すべてのフィールドのセッターとゲッターを生成し、リフレクションを使用して、非パブリック フィールドの setAccessible(true) を適切に設定するなど)、生成された JavaBean にプロパティをマップできるようにします。基になる非Bean POJOを抽出/変換しますか?

オブジェクト マッピング ライブラリとして JDTO を使用することにしました。

前もって感謝します!

4

2 に答える 2

1

不変クラスのインスタンスを動的プロキシ (java.lang.reflection.InvocationHandler) でラップできます。プロキシは、リフレクションを使用して、必要な操作を提供できます。ここでは Apache Beanutils が役立ち、Hibernate は CGLIB を使用してこれを高速化します。

サード パーティ ライブラリのエラーを修正するなどのユース ケースがあるかもしれませんが、それはまれです。その場合は、インターセプターを備えた aspectj も役立つ可能性があります。

したがって、推奨される方法は、不変クラスのインスタンスから可変クラスの別のインスタンスに値をコピーし、そこで状態を変更してから、「公式」の方法で何らかの方法で永続化することです。このようにする理由は、JB Nizet の優れたコメントで既に説明されているので、彼はその功績に値します。

于 2013-05-26T08:00:05.477 に答える