maven 方法不覆盖或实现Eclipse上具有接口和Easy Rules的超类型中的方法

mlnl4t2r  于 2022-11-28  发布在  Maven
关注(0)|答案(1)|浏览(163)

Compiler compliance configuration in Eclipse
我在我的代码中遇到了这个常见的错误“方法不覆盖或实现来自父类型的方法”。我花了近5个小时阅读过去提供的各种解决方案,但没有一个能帮助我。我错过了什么?
以下是我尝试过的方法:
1.确保编译器编译设置为1.8

  1. JRE为1.8
    1.退出并在java中重新导入我的eclipse项目,看看是否有帮助
  2. 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>
dldeef67

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版。它不会导致这个问题,我只是认为保持它们同步是个好主意,除非有特定的原因你不能。

相关问题