@Override编译错误,实现一个接口(eclipse jdk1.6.0_23 linux)

jso*_*soc 15 java eclipse linux compiler-errors jdk1.6

在为实现接口的类使用@Override注释时,我在eclipse中遇到编译错误.

编译器合规性级别设置为Java 6.0.

我使用的是最新版本的6.0 jdk.

错误:"类型{classname}的方法{methodname}必须覆盖超类方法"

相同的配置可以在mac上正常运行.

public interface ChannelIF {
...
    public boolean canSendNarrowcast();
    public boolean canSendBroadcast(); 
}

public class FacebookChannel implements ChannelIF 
{
...
    @Override
    public boolean canSendNarrowcast() { return true; }

    @Override
    public boolean canSendBroadcast() { return true; }
}
Run Code Online (Sandbox Code Playgroud)

Asa*_*aph 14

此功能仅在Java 6及更高版本中有效.我看到你正在使用jdk 1.6.非常好.可能的原因:您正在编译-source 1.5.是这样的吗?如果是这样,你能改变它-source 1.6吗?

  • 对于Eclipse:项目上的右键 - >属性...> Java编译器,然后根据需要进行配置 (2认同)

Ste*_*ker 0

听起来您的方法签名不匹配。它们必须相同,包括抛出的检查异常等。发布你的代码!