尝试在 src main 中的其他类中使用该方法时未定义该方法

问题描述 投票:0回答:1

尝试使用 lombok 生成方法时遇到问题。问题是“该类型的方法/构造函数/等未定义...”。对于位于 src/main/java 中的任何类,我都会遇到它,但是,当在 src/test/java 中使用相同的类时,在测试过程中我没有收到任何错误,并且结果是正确的。让我进一步解释一下情况:

  • 如果我尝试在 src/main 中的另一个类中使用生成的方法来获取一些数据,则会抛出有关未定义方法的错误。

  • 当我删除 lombok 方法并编写自己的方法时,没有任何问题。

  • 如果我在 src/test/java 目录中的类中使用 lombok 生成的方法,则不会出现错误

代码片段:

public class DroolsRuleParsing {
    public static String checkLombokMethods(RuleFormat rule) {
        String constraintItems = null;
    
        if (rule.getRuleType().equalsIgnoreCase("item")) {
            constraintItems = "$hit_idList contains $appliedrule_hitId";
        }
        if (rule.getRuleType().equalsIgnoreCase("hit")) {
            constraintItems = "$hit_id == $appliedrule_hitId";
        }
        return constraintItems;
    }
}

错误:RuleFormat 类型的 getRuleType() 方法未定义

如果我删除此方法并尝试在 src/test/java 中使用 .getRuleType() ,则不会出现错误:

@Test
    public void testRuleGeneration() throws Exception {
        LOG.info("Testing rule generation from JSON");
        RuleFormat RuleData = new RuleFormat();
        RuleData.setId("unique_id_4");
        RuleData.setUid("rule_4");
        RuleData.setName("Rule 4");
        RuleData.setVersion("ver1");
        RuleData.setRuleType("item");
        LOG.info("check lombok getters {}", RuleData.getRuleType());
2024-09-26 17:06:12,572 [main] INFO  check lombok getters item

我正在使用 mvn clean 测试; mvn clean install 检查创建的方法是否有效。

我已经尝试过:

  1. 按照官方网站上的安装指南安装Lombok - https://projectlombok.org/setup/maven - 说明在这里

  2. 摆弄pom文件中的配置,一些建议从pom.xml中删除“范围” - 没有帮助

  3. 使用 Lombok 重新安装 VS code 扩展(Lombok 对 VS Code 的注释支持

java lombok
1个回答
0
投票

当我使用 Drools“入门”部分的测试项目时,pom.xml 中的打包值设置为 kjar。通过这种设置,lombok 方法不起作用,我无法使它们工作。将打包切换为 jar 解决了一个错误,尽管 Drools 规则在同一个项目中停止工作。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.