我刚刚开始用Groovy编程。我注意到一个奇怪的行为,却找不到任何解释。
我已经创建了一个Java接口TestInterface.java
public interface TestInterface {
public void m1();
}
我已经创建了一个Groovy类TestG.groovy
class TestG implements TestInterface {
}
我已经创建了一个Java类TestJ.java
public class TestJ implements TestInterface{
@Override
public void m1() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
我的问题是在TestG为什么我没有得到任何错误实现抽象方法或声明类为抽象。
java和groovy的不同之处在于,我需要在java中实现抽象方法或将类声明为抽象,而在groovy中不需要。
我知道这个问题已经有一段时间了,上面已经回答了,但是我觉得有必要添加这个。
class TestG implements TestInterface {}
这仍然是"java"做事的方式。使用groovy本质上消除了实现接口的需要(除了作为标记接口)
在groovy中,您只需这样做:
def myObject = [m1: {-> doSomething()}] as TestInterface