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 に答える