簡體   English   中英

如何使用帶有Groovy閉包的構造函數參數實例化Java抽象類

[英]How to instantiate a Java abstract class with a constructor parameter with a groovy closure

我試圖從我的Groovy代碼中實例化Java抽象類。 考慮以下Java抽象類(從該類中刪除了不相關的處理):

public abstract class StackOverflow{
  public abstract String answerMe();
}

我可以通過Groovy輕松地實例化它,對answerMe()的調用將觸發正確的輸出:

StackOverflow stack = [answerMe : { "Answer" }] as StackOverflow

現在,如果我修改StackOverflow類,則在構造函數中添加一個String參數,如下所示:

public abstract class StackOverflowStr{
  public StackOverflowStr(String s){}
  public abstract String answerMe();
}

我真的不知道如何實例化我的對象,我做了很多事情,但是我似乎找不到正確的語法,有人知道嗎?

僅作記錄,並在措辭上明確:在所有這些情況下,您都沒有實例化抽象類。

抽象類是永遠不能實例化的類。

您正在實例化擴展抽象類的具體匿名類。 B-)

您可以用經典的Java風格實例化它:

StackOverflowStr stack = new StackOverflowStr("javaish"){
    String answerMe() {"answer"}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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