如何使用带有groovy闭包的构造函数参数来实例化Java抽象类

Ced*_*tay 5 java groovy abstract-class

我试图从我的Groovy代码实例化一个Java抽象类.考虑以下Java抽象类(从类中剥离出非相关处理):

public abstract class StackOverflow{
  public abstract String answerMe();
}
Run Code Online (Sandbox Code Playgroud)

我可以通过这种方式轻松地在Groovy中实例化它,并且调用answerMe()将触发正确的输出:

StackOverflow stack = [answerMe : { "Answer" }] as StackOverflow
Run Code Online (Sandbox Code Playgroud)

现在,如果我修改StackOverflow类在构造函数中添加一个String参数,如下所示:

public abstract class StackOverflowStr{
  public StackOverflowStr(String s){}
  public abstract String answerMe();
}
Run Code Online (Sandbox Code Playgroud)

我真的不知道如何实例化我的对象,我尝试了很多东西,但我似乎无法找到正确的语法,有人有任何线索吗?

And*_*odi 3

您可以用经典的 Java 风格实例化它:

StackOverflowStr stack = new StackOverflowStr("javaish"){
    String answerMe() {"answer"}
}
Run Code Online (Sandbox Code Playgroud)