クラスライブラリバイトコードJavassistの

Javassistの利点

-反射、高パフォーマンスのコストよりも小さいです。
反射より-Javassistパフォーマンス、ASMのより少ない
バイトコード操作は、私たちは以下の機能ランタイムを達成することができます:
-動的に新しいクラスを生成
-動的に構成を変更するクラスを(新しいプロパティ/メソッドを変更/追加/削除)
JavassistのAPI最外層と反射JAVA APIパッケージは非常に似ています。
これは主にCtClass、CtMethod ,,とCtFieldいくつかのクラスで構成されています。java.lang.Class、java.lang.reflect.Methodオブジェクトのために、同様の動作とJDK java.lang.reflect.Methodオブジェクト選択図】図リフレクションAPIを実行します。
操作方法
-既存のメソッド本体(既存の方法に体内挿入コード)を変更する方法
-方法新しい方法削除


Javassistのの制限
JDK5.0(ジェネリック、列挙を含む)は、新しい構文をサポートしていない、それは注釈の変更をサポートしていないが、基礎となるJavassistのクラスによって対処することができ、特定の基準:javassist.bytecode.annotation
支持体の配列を初期化しない、など文字列[] {「1」、 「2」}、 唯一アレイの容量がある場合を除き
、内部および匿名クラスでサポートされていない
ブレークをサポートし、式を継続していません。
継承のためにあるものとないものがあります。例えば、
クラスA {}  
クラスB {A}延び 
クラスB {C}延び 

 

おすすめ

転載: www.cnblogs.com/pickKnow/p/11128864.html