2011-12-07 7 views
0

こんにちはSOFのメンバー!JavaデリゲートコールBCEL/ASM

私が探しているのは? 私はどのようにWeb上で検索し、検索していますか(もちろんコンパイルされている)クラスのインターフェイスをインプリメント/インジェクトすることができます。私もできる限り多くのBCELとASMを習得しようとしていましたが、リソースが少ない(親愛なる友人のGoogleもそうです)ので、私はここで助けを見つけることができれば嬉しいです!私はあなたが私に何かを供給してくれることを期待していませんが、私はいくつかの指示が必要です!私はASMサイトの素晴らしい本を知っていて、それらに関するすべてのことについての非常に多くのチュートリアルを知っていますが、私が前に述べたように、どうすればそれのインターフェース/メソッドを追加できるかを理解できません。 私は何を試しましたか? 私はこのリンクを見つけましたhereしかし、それは私が期待した通りにうまくいかなかったのです。 私は何をしたいのか正確に知っていますが、どうすれば達成できるのか分かりません。 heres example!

public class Cat { 
public int age; 
} 

public interface Animal { 
public int getAge(); 
} 

その方法のHERESに実装:

public int getAge(){ 
return age; 
} 

そう親愛なるSOFメンバー、どのようにこの作品アウトでしょうか?

答えて

0

私はBCELの経験がありましたが、あなたが再定義したいクラスを検出するカスタムクラスローダーから始めたいと思っています。そのようなクラスごとにBCEL JavaClassオブジェクト(ClassLoaderRepositoryを使用)を取得し、そのクラスを好みのとおりに変更します。完了したら、クラスファイルをJavaClassから取得し、ClassLoader#defineClassを使用して定義のためにJVMに渡します。

実際のメソッドを実装するには、コードを含むテスト・クラスを作成し、そのクラス・ファイルを生成するために必要なJava BCELソース・コードを出力するクラス・ファイルにBCELifierを実行することをお勧めします。それを検査し、あなたの好みにコピーペーストしてください。

+0

今すぐショットを付けていただきありがとうございます:3 – Ruuhkis

関連する問題