私はJavassistの初心者であり、それに関連するいくつかのチュートリアルをすでに読んでいます。
各メソッドでバイトコードインジェクションを実行する必要があるため、メソッドの入力または終了の前に、これからいくつかの統計を取得します。
オンラインのjavassitチュートリアルを通じて、既存のクラスに新しいフィールドを作成できることがわかりました。
CtClass point = ClassPool.getDefault().get("Point");
CtField f = new CtField(CtClass.intType, "z", point);
point.addField(f);
ただし、CtFieldの型にはデフォルトでプリミティブ型しか含まれていません。たとえば、ArrayListなど、型が非プリミティブである新しいフィールドを追加できますか?
新しいArrayListフィールドを既存のクラスに追加できる場合、クラスはjava.util.ArrayListをインポートしないため、コンパイルエラーが発生しますか?