我刚刚开始使用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中。
答案 0 :(得分:6)
我知道这个问题已经出现了一段时间并在上面回答但我觉得有必要加上这个。
class TestG implements TestInterface {}
这仍然是“java”做事方式。使用groovy基本上消除了实现接口的需要(除了标记接口之外)
在groovy中你会这样做:
def myObject = [m1: {-> doSomething()}] as TestInterface