2011-02-24 5 views
1

私は多くのクラスを操作しています。私が最初に訪問したときに十分な情報がないクラスもありますので、再訪する必要があります。私が再訪する必要がある場合、最初のパスの時点で私は知らないので、修正の最初のパスで完全なクラスをコピーします。方法を再検討し、私のフィールドに&メソッド宣言を重複するため、検証エラーを与えるJava ASMメソッドを複数回訪問する

byte[] b... 
ClassReader cr = new ClassReader(b); 
ClassWriter cw = new ClassWriter(read,0); 
ClassAdapter ca = new ClassAdapter(cw);//First pass 
cr.accept(ca,0); 
ClassAdapter ca2 = new ClassAdapter(cw);//Second Pass 
cr.accept(ca2,0); 

ClassWriterにこのコードの結果をメソッドを上書きすることが可能であるならば、私が知りたいのは何

です。

答えて

1

cwから読み取られた新しいバイトコードを使用して、新しいClassReaderを初期化する必要があります。 toByteArray()。そこから、他の手順(新しいClassWriter、新しいClassAdapterなど)を繰り返します

関連する問題