2011-06-28 1 views
0

Я поставил много времени на эту проблему и безрезультатно. В идеале я хотел бы передать параметр в конструктор динамически сгенерированного класса. Проблема в том, что я не знаю, как создать экземпляр с параметризованным конструктором.Javassist: Как я могу назвать конструктор nondefault на динамически сгенерированном классе?

Мой подход к конкретизации до сих пор ...

CtClass myClass . . . 
myClass.addInterfaces(.... //assume I have an interface that is nondynamic 
InterfaceName interfaceinstance = (InterfaceName) (myClass.toClass().newInstance()); 

Есть ли лучший способ пойти об этом, что обеспечит большую гибкость?

Большое вам спасибо!

RB

ответ

3

предположит, что вы хотите вызвать конструктор, который принимает строку как пары (я полагаю, вы знаете, подпись)

Class clazz = object.getClass(); 
Constructor ctr = clazz.getDeclaredConstructor(String.class); 
Object instance = ctr.newInstance("Foo"); 
+0

Fantastic. Здесь я терял время, глядя в API Javassist. Отражение - сумасшедшая вещь, спасибо за вашу помощь! – user321605

 Смежные вопросы

  • Нет связанных вопросов^_^