@Override编译错误,实现一个接口(eclipse jre7 Windows)

时间:2014-12-19 04:57:50

标签: java eclipse

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

JDK合规性级别设置为1.7。

我使用的是最新版本的jdk7。

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



public interface DataDictionary {
	
	public Map<String, ? > getAllEntries(String dictionaryName);
	...
        ...

}


public class StringDictionary implements DataDictionary {

        @Override // this generates the error
	public Map<String, ?> getAllEntries(String dictionaryName) {

		// some implementation

		return dataDictEntries;

	}
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:0)

如果您正在使用eclipse,则删除子类中的方法减速(StringDictionary),然后编译器将要求您在超类中实现未实现的方法。然后在eclipse的帮助下使用选项Add unimplemented method

希望这样能解决你的问题。

答案 1 :(得分:0)

我已经完全尝试了你的代码 - 完全没问题。 JDK1.6应该足够了,因为在JDK1.6中添加了@Override接口。从我在问题中看到的所有内容来看,您的代码是正确的,应该可以正常工作。

我建议重新启动Eclipse或更改方法然后将其更改回来,似乎Eclipse中的某些内容与您的代码不同步。

答案 2 :(得分:0)

还有一个建议,删除eclipse为你生成的类文件,对文件进行一些编辑(如注释),保存并让eclipse再次为你构建。

答案 3 :(得分:0)

我认为已经解决了。之前我只修改了工作区属性,但是使用了带有SVN的maven项目。 Maven在内部设置每个项目的属性,以便在每次更新时使用“Project Specific 1.5 java compliance”。

我更改了每个项目以使用工作区JDK合规性并删除了SVN项目中的项目特定设置,以防止在更新代码后出现未来错误。

感谢。