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