0

我注意到 groovy OOP 上有一个非常奇怪(或错误)的行为。我想确定这是正常的。
我有一个接口和一个类(在 grails 项目中),例如:

界面

package it.rascio.test

interface MyInterface {
  public Object myMethod()

  public ArrayList<? extends Observable> secondMethod()
}

班级

package it.rascio.test

import java.util.ArrayList;
import java.util.Observable;

class MyImplementation implements MyInterface {

  @Override
  public Object myMethod() throws Exception{
    return null;
  }

  @Override
  public ArrayList<String> secondMethod() {
    // TODO Auto-generated method stub
    return null;
  }

}

你怎么看这在概念上是错误的,因为myMethod没有声明throws子句,而实现接口的类却声明了

并且secondMethod需要 aListObservable对象,但是实现类声明了 a Listof String(那不是 a Observable)。

使用此代码 STS (eclipse) 告诉我存在编译错误,但如果我尝试启动grails compile命令,它可以工作!

这怎么可能?这是一个错误还是什么?

4

0 回答 0