我有几种覆盖方法,如下所示:
@Override
public int compareTo(Property p) {
return getText().compareTo(p.getText());
}作为Java项目,它工作正常,但作为Maven项目,它返回以下错误:
The method compareTo(Property) of type Property must override a superclass method在对此进行研究之后,我想我应该将我的JRE (jdk1.6_u25)作为一个依赖项包含在我的POM文件中,还是这是一个完全不同的问题呢?
非常感谢。
发布于 2014-06-10 09:56:42
谢谢大家的评论,很多人说Maven默认使用Java 5,这可能是问题的原因,因此,我能够通过这个答案来确定问题所在:
Why is javac failing on @Override annotation
默认情况下,JDK编译器的遵从性级别设置为1.5;一旦我将其设置为1.6,错误就会被删除。
非常感谢。
发布于 2014-06-10 08:57:40
你不需要再依赖别人了。但是默认情况下,maven使用Java5语言级别,其中不允许@Override实现接口方法。这是在第六章介绍的。
因此,您必须将编译器插件配置为使用6级语言,如下所示:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>https://stackoverflow.com/questions/24136661
复制相似问题