2012-07-05 83 views
2

从头开始创建我的项目后,使用Maven依赖控件进行播放并将所有旧文件复制到新项目中,结果发现Eclipse现在宣告了@Override注释。它说,当这个注释出现时,“方法必须重写超类方法”,否则保持冷却。此外,它在使用快速输入时不会自动插入此注释。Eclipse不喜欢@Override注释

这是为什么?

+0

您的方法实际上覆盖了父类吗?你用什么java版本? – WhyNotHugo 2012-07-05 22:58:03

回答

3

更改您的maven pom以强制使用Java 6或7.我之前在使用pom导入项目时出现此问题,它默认使用Java 1.5 JDK。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.0.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin>   
    </plugins> 
</build> 
1

您很可能(想要)将@Override放在从接口继承的方法上。这只从Java 1.6开始才有效,您的Eclipse项目很可能设置为源级别1.5(或者您正在运行非常过时的1.5 JDK,但这不太可能)

+0

根据javadocs:从以下版本开始:1.5 – Matt 2012-07-06 00:20:16

+1

@Matt接口上的覆盖实际上只能在Java6 +上工作 - 这是一个令人讨厌的限制,每个人都会早晚发现它。重写从1.5开始存在,但仅在重写类的方法时才存在。或者我误解了你的帖子? – Voo 2012-07-06 00:45:53