2012-09-21 2 views
2

나는 인스턴스를 만들 수 있습니다javassist에서 ctClass로 newInstance를 만드는 방법은 무엇입니까?

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

을하지만와 Javassist하여 클래스를 수정해야합니다

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

지금, 내가 그렇게 할 수 ctClass.How에서 인스턴스를 만들고 싶어?

답변

4

ClassClass를 사용하여 CtClass를 초기화 할 수 있습니다. 여기에 예제가 있습니다

ClassPool pool = ClassPool.getDefault(); 
Class<?> clazz = pool.toClass(ctClass); 
Object instance = clazz.newInstance(); 
System.out.println("Instance: " + instance); 
+1

내 날을 저장했습니다. 고마워 – Snicolas