Javassist:如何在动态生成的类上调用非默认构造函数?

时间:2011-06-28 18:46:52

标签: java reflection assembly code-generation javassist

我已经花了很多时间来解决这个问题并且无济于事。理想情况下,我想将参数传递给动态生成的类的构造函数。问题是我不知道如何使用参数化构造函数进行实例化。

到目前为止我的实例化方法一直是......

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

有没有更好的方法可以提供更多的灵活性?

非常感谢你!

RB

1 个答案:

答案 0 :(得分:3)

假设您要调用构造函数,它将字符串作为参数(我想您知道签名)

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