Можно ли добавить непримитивное поле к существующему классу с помощью javassist?

Я новичок в 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, вызовет ли это ошибку компиляции?

7
задан LifeOnCodes 19 February 2012 в 09:38
поделиться