0

これは私が使用しているコードです

    String fieldName = "lock";
    String fieldType = "Ljava/util/concurrent/locks/Lock;";
    Object initValue = new ReentrantLock();

    cw.visitField(ACC_PUBLIC, fieldName, fieldType, null, initValue).visitEnd();

「Lock lock = new ReentrantLock();」の行を追加しようとしています。しかし、asmはエラーをスローしています

スレッド「メイン」での例外 java.lang.IllegalArgumentException: org.objectweb.asm.ClassWriter.a の値クラス java.util.concurrent.locks.ReentrantLock (不明なソース)

4

1 に答える 1

2

オブジェクトを初期値として渡すことはできません。コードを生成したときではなく、コードが実行されたときにオブジェクトを作成するコードを生成する必要があります。

于 2013-09-22T21:56:58.813 に答える