我正在使用弹簧休息控制器。
这是代码。
@RequestParam(value = "status", required = false, defaultValue = StatusEnum.STATUS.toString())
如果我使用枚举作为默认值,我得到注释属性 RequestParam.defaultValue 的值必须是一个常量表达式。
根据我的理解,它应该接受枚举作为默认值。
请指教。
我正在使用弹簧休息控制器。
这是代码。
@RequestParam(value = "status", required = false, defaultValue = StatusEnum.STATUS.toString())
如果我使用枚举作为默认值,我得到注释属性 RequestParam.defaultValue 的值必须是一个常量表达式。
根据我的理解,它应该接受枚举作为默认值。
请指教。
由于它必须是一个字符串,并且它必须是一个常量表达式,因此您唯一真正的选择是使用适用于 的值Enum.valueOf()
,因为这就是最终解决问题的方式。
具体来说,您应该阅读
@RequestParam(value = "status", required = false, defaultValue = "STATUS")
当然,假设这"STATUS"
是StatusEnum.STATUS
.
避免在不同位置使用字符串的解决方法是使用类似的东西
public enum StatusEnum {
STATUS();
public class Names {
public static final String STATUS = "STATUS";
}
}
在查询参数中
@RequestParam(value = "status", required = false, defaultValue = StatusEnum.Names.STATUS)