3

我可以举个例子:

Class<?> jClazz = Class.forName(XXXX);
jClazz.newInstance();

但我需要通过 javassist 修改类:

CtClass ctClass = cp.get(path);
CtConstructor m = CtNewConstructor.make("public " + className + "() {}", ctClass);
ctClass.addConstructor(m);

现在,我想从 ctClass 创建一个实例。我该怎么做?

4

1 回答 1

4

您可以使用 ClassPool 初始化 CtClass。这是一个例子

ClassPool pool = ClassPool.getDefault();
Class<?> clazz = pool.toClass(ctClass);
Object instance = clazz.newInstance();
System.out.println("Instance: " + instance);
于 2012-12-24T08:29:34.940 回答