@GettingMapping 等注解需要,请求报uses the '-parameters' flag错

1 @GettingMapping 等注解需要,请求报uses the '-parameters' flag错

报错信息:
Name for argument of type [java.lang.String] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.

报错信息

问题分析:


这个错误信息通常出现在Spring MVC或类似框架中,当控制器方法参数没有明确指定名称,并且编译时没有启用-parameters编译器参数时,反射无法获取参数名称,导致无法将请求参数绑定到方法参数上。

解决办法:

1. 使用@RequestParam注解明确指定参数名称:
@GetMapping("/api")
public String apiMethod(@RequestParam String name) {
    return "Hello " + name;
}

注意:即使使用@RequestParam,如果不指定参数名(如@RequestParam("name")),并且没有启用-parameters,仍然需要指定value属性,因为默认会使用编译后的参数名(通常是arg0, arg1等)。但是,如果启用-parameters,则可以直接使用@RequestParam String name因为反射可以获取参数名。

2. 启用-parameters编译器选项:
对于Maven项目,可以在pom.xml中配置maven-compiler-plugin:
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
              <parameters>true</parameters>
          </configuration>
      </plugin>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容