You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写忽略JavaParser类路径未知类编译错误的OpenRewrite Java Recipe测试?

如何在OpenRewrite Java Recipe测试中忽略未知类类型的编译错误

是的,你可以通过配置JavaParser的错误恢复模式来忽略类路径中缺失未知类引发的编译错误。具体可在parser()配置中添加.errorRecoveryEnabled(true),这样即便部分类无法在类路径中找到,测试也能继续执行,不会因编译错误中断。

修改后的示例代码如下:

@Test
void requiredRequestParam() {
    rewriteRun(
            spec -> spec
                    .recipe(new MandatoryRequestParameter())
                    // 启用错误恢复,忽略未知类导致的编译错误
                    .parser(JavaParser.fromJavaVersion().errorRecoveryEnabled(true)),
            java(
                    """
                      import org.springframework.web.bind.annotation.RequestParam;
                      
                      class ControllerClass {
                        public String sayHello (
                          @RequestParam(value = "fred") String fred,
                          @RequestParam(value = "lang") String lang,
                          @RequestParam(value = "aNumber") Long aNumber
                        ) {
                          return "Hello";
                        }
                      }
                    """,
                    """
                      import org.springframework.web.bind.annotation.RequestParam;
                      
                      class ControllerClass {
                        public String sayHello (
                          @RequestParam(required = true, value = "fred") String fred,
                          @RequestParam(value = "lang") String lang,
                          @RequestParam(required = true, value = "aNumber") Long aNumber
                        ) {
                          return "Hello";
                        }
                      }
                    """
            )
    );
}

关键说明

  • errorRecoveryEnabled(true)会让JavaParser将未知类视为未解析类型,而非直接抛出编译错误,测试流程得以继续,你的Recipe依然能针对代码语法结构(比如注解属性)做修改。
  • 这种方式适合不需要依赖类完整语义信息,仅基于代码语法结构修改的场景。如果你的Recipe需要用到类元数据(比如注解完整定义、方法签名匹配等),仍建议将对应依赖添加到测试类路径,保证解析准确性。

内容的提问来源于stack exchange,提问作者José María Lora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 10:55:01