我正在编写一个实现名为Command的接口的Java类,其中包含方法isValid()
和run()
,如下所示:
public class DailyEnergy implements Command {
@Override
public boolean isValid(String command) {
return false;
}
@Override
public void run(String command) throws Exception {
}
}
这是Command.java文件:
public interface Command {
public boolean isValid(String command);
public void run(String command) throws Exception;
}
在这个类中,我正在实现超类方法isValid()
和run()
,我想添加@Override
注释,但是Eclipse给出了一个错误,说“方法必须覆盖超类方法“。
即使我拿出方法并使用Eclipse自动导入它们,如果我添加注释,我也会收到错误。如果有人能够解释为什么我不能使用@Override
注释,那将非常感激。
答案 0 :(得分:46)
自Java-6以来,支持接口实现的@Override
注释。你可能在Java-5上吗?甲骨文has acknowledged在Java 6 docs中搞得一团糟。它一直是corrected in Java-7。见下面的例子:
答案 1 :(得分:2)
你使用JDK5吗? 我想到的是,它是JDK5中的一个错误。在JDK5中实现接口时不允许使用@override