我需要生成一个必须有一个返回同一个对象的方法的类。
我想生成类似这样的东西
public class A{
public A method1(){
...
}
}
问题是我必须传递方法返回的类的Class对象。如果我这样做,因为我的类还没有构建,我将得到一个ClassNotFoundException。有没有办法实现这个目标?
感谢。
答案 0 :(得分:1)
经过一番挖掘后,我设法找到了解决方案。如果您无法访问类,因此无法提供其对应的Class对象,请使用Codemodel对象中的方法directClass(String className),该方法将表示类名的String作为输入,并返回相应的JClass对象。
答案 1 :(得分:0)
您可以使用CodeModel JDefinedClass
在类生成期间引用包含的类:
JDefinedClass aClass = codeModel._class(JMod.PUBLIC, "A", ClassType.CLASS);
JMethod method= aClass.method(JMod.PUBLIC, aClass, "method1");
method.body()._return(JExpr._new(aClass));
输出:
public class A {
public A method1() {
return new A();
}
}