2017-04-14 2 views
0

クラスjava.lang.reflect.Fieldのオブジェクトfieldがあるとします。オブジェクトo1のフィールドの値をo2のフィールドの値に変更することができます。field.set(o1, o2)。私はそれがいくつかのライブラリ、例えばcglibの助けを借りてより速く実行できるかどうか疑問に思っていますか?cglibを使用してフィールド値を変更します

答えて

0

いいえ、JVMはJITコンパイラを実装しているため、99.9%のパフォーマンスでバイトコードの生成が廃止されています。リフレクションの場合、リフレクションAPIが意味するセキュリティチェックを避けるために、コード生成を使用することがあります。そうではなく、MethodHandleを調べて、このセキュリティチェックをハンドル作成に移動し、各呼び出しでトリガーされないようにする必要があります。

関連する問題