当前位置: 首页 > 知识库问答 >
问题:

@覆盖编译错误,实现接口(eclipse jre7 Windows)

胡鸿羲
2023-03-14

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

JDK合规级别设置为1.7。

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

错误:“{类名}类型的方法{方法名}必须覆盖超类方法”

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;

	}

共有3个答案

贾兴学
2023-03-14

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

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

柯昱
2023-03-14

如果您使用的是eclipse,那么请删除子类(StringDictionary)中的方法减速,然后编译器将要求您在超类中实现未实现的方法。然后在eclipse的帮助下,您可以使用option添加未实现的方法。

希望它能解决你的问题。

钱黎明
2023-03-14

我想已经解决了。之前我只修改了工作区属性,但使用了带有SVN的maven项目。Maven在内部设置每个项目的属性,以便在每次更新时使用“特定于项目的1.5 java兼容性”。

我更改了每个项目以使用workspace JDK compliance,并删除了SVN项目中特定于项目的设置,以防止代码更新后出现错误。

谢谢

 类似资料:
  • 问题内容: 我正在用Go编写Web应用程序的代码,尽管各种mux库提供了一种设置自定义404错误处理程序的方法,但其他4xx和5xx错误代码却一无所获。 一种建议是在ResponseWriter界面中重写WriteHeader方法并检查状态代码,但是我对如何实际写入感到困惑(在输出之前重写ResponseWriter方法)。从negroni包中可以找到一个可能的例子。 这是为4xx和5xx错误提供

  • 问题内容: 为什么必须重写接口的所有方法? 例如,如果我有 我将有很多我什至不会使用的方法,有没有一种方法可以删除未使用的实现方法,例如,如果 我计划从接口中使用一种方法 我也不想使用抽象,因为这意味着我无法创建对象的实例(至少我的编译器这样说) 问题答案: 具体的类必须始终实现接口的所有方法。如果您还没有扩展,可以扩展。它实现了空方法,以避免将其写出来。您可以在类内部使用匿名类,如下所示:

  • 我很难协调以下文件中的内容: 当我尝试编译它时,我得到以下错误消息: 这很好,所以这意味着我应该能够通过明确指定财产权的对象类型来绕过这个问题? 除了现在的问题之外,当我使用编译时,我会收到以下错误消息: 似乎不管我做什么,我都会输,因为如果我小心界面上的类型规格并拼出所有内容,那么我就不能将实现专门化为只有1种类型。问题是有文件正是这样做的,如果我想让编译器找到所有的类型,因为我想尽可能显式,我

  • 在这个特定的示例中,我扩展了

  • 我有一个接口stores,它有两个方法getName()和getAddres(),我有一个实现stores的类Market,这是我的代码: 和具体类: 我在构造函数中得到关于this.name=name、this.address=address和this.size=size的错误,这些错误表示“无法访问存储”。你知道为什么吗?

  • 问题内容: 我正在开发一些基于Web服务的应用程序,并且对Apache CXF解组有疑问。在我们的项目中,我们使用CXF 2.4.1版本。 当某些SOAP请求不正确时(例如,某些字段是文本而不是数字),CXF会抛出标准的SOAPFaultException,并且SOAP响应将使用以下标准字段构建: 项目要求说,如果发生任何故障,系统需要以其他格式响应,例如: 所以问题是:如何以某种方式覆盖此错误处