[英]Create a method which returns the class that i want to generate in Codemodel
我需要生成一個類,該類必須有一個返回同一類對象的方法。
我想生成這樣的東西
public class A{
public A method1(){
...
}
}
問題是我必須傳遞該方法返回的類的 Class 對象。 如果我這樣做,因為我的類還沒有建立,我會得到一個 ClassNotFoundException。 有沒有辦法實現這一目標?
謝謝。
經過一番挖掘,我設法找到了解決方案。 如果您無權訪問某個類,因此無法提供其相應的 Class 對象,請使用 Codemodel 對象中的 directClass(String className) 方法,該方法將表示類名的 String 作為輸入並返回相應的 JClass 對象。
您可以使用 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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.