Compiler compliance configuration in Eclipse
我在我的代码中遇到了这个常见的错误“方法不覆盖或实现来自父类型的方法”。我花了近5个小时阅读过去提供的各种解决方案,但没有一个能帮助我。我错过了什么?
以下是我尝试过的方法:
1.确保编译器编译设置为1.8
- JRE为1.8
1.退出并在java中重新导入我的eclipse项目,看看是否有帮助 - mvn清理安装-U
1.用于在我的pom.xml文件中显示属性
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
1.使用了另一种提及目标和源的java版本的方式,如下所示
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
<version>3.8.1</version>
</plugin>
</plugins>
我在干什么?
我正在使用Easy Rules。我实现了RuleListener,如下所示:我一直得到“方法不覆盖或实现来自父类型的方法”。
public class PositionalStrengthListener implements RuleListener {
private static Logger logger = LoggerFactory.getLogger(PositionalStrengthListener.class);
@Override
public void onSuccess(Rule rule, Facts facts) {
logger.debug("OnSuccess: PositionalStrengthListener");
}
public void onFailure(Rule rule, Facts facts, Exception exception) {
logger.debug("On failure:PositionalStrengthListener");
}
}
我正在实作这个界面:https://github.com/j-easy/easy-rules/blob/master/easy-rules-core/src/main/java/org/jeasy/rules/api/RuleListener.java
我关注的是OnSuccess @Override错误消息,因此没有在OnFailure上添加@Override,但如果我添加@Override,我会得到与OnFailure相同的错误。
下面是pom.xml文件中的简单规则依赖关系。
<!-- https://mvnrepository.com/artifact/org.jeasy/easy-rules -->
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-core</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-support</artifactId>
<version>3.3.0</version>
</dependency>
1条答案
按热度按时间dldeef671#
你回复了greg-449关于导入的评论,但是没有提到你在Rule中使用的是什么导入。因为jeasy有两个Rule类,我认为这是值得仔细检查的。
它应该是
org.jeasy.rules.api.Rule
。我可以通过将导入改为org.jeasy.rules.annotation.Rule
来重现编译错误。顺便说一句,考虑使用4.1.0版的easy-rules-support而不是3.3.0版。它不会导致这个问题,我只是认为保持它们同步是个好主意,除非有特定的原因你不能。