【问题标题】:Using Enum constant in request header spring boot在请求标头弹簧启动中使用枚举常量
【发布时间】:2019-03-20 21:11:58
【问题描述】:

我有一个 Spring Boot 应用程序,想使用 Enum 常量来指定值,如下所示,但是编译器会产生错误 “类型不匹配:无法从常量转换为字符串” 这是代码块

@RequestMapping(method= RequestMethod.POST, value="/user")
public User createUser(@RequestBody User user,
        @RequestHeader(value= Constants.HEADER_USER_AGENT) String userAgent
)

我知道我可以使用 public static String 代替 Enum,但我想知道是否可以使用 Enum 常量?

【问题讨论】:

标签: java spring


【解决方案1】:

怎么样

Constants.HEADER_USER_AGENT.toString()

例如?请记住:枚举不是字符串,但可以转换为一个!

【讨论】:

  • 也试过了,我得到“注释属性 RequestHeader.value 的值必须是常量表达式”编译器错误
【解决方案2】:

例如,在您的控制器中。

@GetMapping
public void myEndpoint(@RequestHeader("X-My-Header") EMyEnum myEnum) {
    // ...
}

标头请求示例:

X-My-Header: MY_ENUM_VALUE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 2020-04-09
    • 1970-01-01
    • 2015-09-14
    相关资源
    最近更新 更多