0

我知道它应该工作,但它没有。我有一个定义如下的类继承:

public class VisitManagementForm extends FormWithTitle implements Property.ValueChangeListener {

现在它只允许覆盖扩展中的方法,它不会,甚至不允许我从 Property.ValueChangeListener 实现/覆盖方法。这是为什么?我用扩展交换了工具的位置,然后只有工具有效,扩展似乎不可见。

我最近将项目转向了 Maven,是否可能是 Maven 导致了这种疯狂?也许我需要指定一些东西来允许它?还是我只是在这里遗漏了什么?

Property.ValueChangeListener 应该像这样强制实现这个方法:

    @Override
public void valueChange(ValueChangeEvent event) {
    // TODO Auto-generated method stub

}

但是现在我得到它需要覆盖或实现超类型方法的错误......

编辑:我在项目中使用 Java 1.6。

编辑:另外,如果我尝试实现其他东西(同时将扩展保留在那里),它建议我实现这些方法,但是如果我实现 ValueChangeListener 它并不建议我实现任何东西,但是如果你删除扩展并离开只是实现了ValueChangeListener,然后建议再次实现它的方法。但只要我保留扩展,我似乎得到了上面提到的错误。

4

3 回答 3

3

请注意,您不能将 @Override 注释添加到在 Java 5 中实现接口的方法 - 它会产生错误。在 Java 6 中是允许的

来源

于 2013-01-10T04:43:54.427 回答
2

你正在做的是非法的多重继承从 Java 语言规范检查这个例子

于 2013-01-10T04:42:01.657 回答
0

如果这是在您切换到 maven 之前工作的代码,原因可能是 maven 编译器插件默认将源版本设置为1.5,这意味着,正如另一个答案中已经提到的,您不能@Override用于接口方法。

于 2013-01-10T04:51:52.663 回答