2

オブジェクト グラフを調べて、特定のプロパティ値を選択する必要があるという問題があります。私のオリジナルのソリューションは、オブジェクト グラフのポイント A からポイント B に移動するために適用する必要があるプロパティ名のリンク リストをキャッシュします。次に、apache commons PropertyUtilsを使用して、ポイント B に到達するまで getProperty(Object bean, String name) を呼び出してリンク リストを反復処理します。

私の質問は、おそらく各ステップの Method オブジェクトをキャッシュする場合と比較して、これがどのように機能するかについてです。ボンネットの下で propertyUtils は何をしているのですか? 多くの反射/重い物を持ち上げていますか?

4

1 に答える 1

1

コモンズbeanutilsの新しいバージョンもbean1.prop1.prop2のような式をサポートしているため、グラフを手動で横切る必要はありません。

ある程度の反映が絶対に必要であるため、各式を1回だけ実行する場合のパフォーマンスについては、propertyutilsの実装で問題ありません。

各式が複数回呼び出されると、より現実的なパフォーマンスの向上を実現できます。次に、実行する最終メソッドをキャッシュすると、式に対して1回だけ大きなリフレクションを実行するため、結果を改善できます。

式を数回使用する場合は、「コンパイルされた式」をサポートするOGNLを調べることができます。

于 2010-02-09T12:46:32.320 に答える