簡體   English   中英

創建一個方法,該方法返回我想在 Codemodel 中生成的類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM