创建一个 returns 我想在 Codemodel 中生成的 class 的方法
Create a method which returns the class that i want to generate in Codemodel
我需要生成一个 class,它必须有一个方法 returns 一个相同 class 的对象。
我想生成这样的东西
public class A{
public A method1(){
...
}
}
问题是我必须传递方法返回的 class 的 Class 对象。如果我这样做,因为我的 class 还没有构建,我将得到一个 ClassNotFoundException。有办法实现吗?
谢谢。
经过一番挖掘,我设法找到了解决方案。如果您无权访问 class,因此您无法提供其对应的 Class 对象,请使用 Codemodel 对象中的方法 directClass(String className)作为输入,表示 class 名称的字符串和 returns 对应的 JClass 对象。
您可以使用 CodeModel JDefinedClass
在 class 生成期间引用包含的 class:
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();
}
}
我需要生成一个 class,它必须有一个方法 returns 一个相同 class 的对象。
我想生成这样的东西
public class A{
public A method1(){
...
}
}
问题是我必须传递方法返回的 class 的 Class 对象。如果我这样做,因为我的 class 还没有构建,我将得到一个 ClassNotFoundException。有办法实现吗?
谢谢。
经过一番挖掘,我设法找到了解决方案。如果您无权访问 class,因此您无法提供其对应的 Class 对象,请使用 Codemodel 对象中的方法 directClass(String className)作为输入,表示 class 名称的字符串和 returns 对应的 JClass 对象。
您可以使用 CodeModel JDefinedClass
在 class 生成期间引用包含的 class:
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();
}
}