2012-02-25 28 views
1

私は最近この質問をしました: Best choice? Edit bytecode (asm) or edit java file before compilingどのようなASM APIを使用しますか?

私はASMの使用を選択しました。今

私はASMが2 APIの(イベントベースおよびオブジェクトベース)を提供していることに気づいたドキュメントを読みながら

何私は私の問題のために最も適したAPIのでしょうか?

私はイベントベースだと思っています。すべての比較/特定の操作を検索したいからです。

あなたの意見は?

+2

"イベント処理とメモリ処理:イベント駆動型処理は軽量ですが、少し制限がありますが、メモリ処理の方が柔軟で使いやすいですが、インメモリプロセッサは、DOM XMLパーサーが内部的にSAX XMLパーサを使用するのと同じように、内部的にイベント駆動型プロセッサを使用します。 http://www.geekyarticles.com/2011/10/manipulating-java-class-files-with-asm.html – L7ColWinters

答えて

2

これは、変換の種類によって異なります。トランスフォームが特定のバイトコードを1つのメソッドで処理し、このバイトコードの前後にコードを挿入する必要がある場合は、イベントベースのAPIを使用するのが非常に簡単です。

ツリーベースのAPIは、クラス内の他のメソッドに関する情報が必要な場合や、変更したいバイトコードのコンテキストがさらに必要な場合に便利です。

編集:ツリー構造を構築し、クラスに関するいくつかの情報を決定し、イベントベースのAPIを使用して、このツリーノードを変換する最初の、両方のアプローチを組み合わせることも可能です。

+0

それから私の控除は正しいものでした。ありがとう! – tgoossens

関連する問題