我正在使用彈簧休息控制器。@RequestParam默認值不接受枚舉值作爲默認值
這是代碼。
@RequestParam(value = "status", required = false, defaultValue = StatusEnum.STATUS.toString())
如果我使用枚舉作爲默認值我得到用於註釋屬性的值RequestParam.defaultValue必須是一個常量表達式。
根據我的理解,它應該接受枚舉作爲默認值。
請指教。
我正在使用彈簧休息控制器。@RequestParam默認值不接受枚舉值作爲默認值
這是代碼。
@RequestParam(value = "status", required = false, defaultValue = StatusEnum.STATUS.toString())
如果我使用枚舉作爲默認值我得到用於註釋屬性的值RequestParam.defaultValue必須是一個常量表達式。
根據我的理解,它應該接受枚舉作爲默認值。
請指教。
因爲它必須是一個字符串,並且它必須是一個常量表達式,所以這裏唯一真正的選擇是使用對Enum.valueOf()有效的值,因爲這是最終解決的方法。
具體而言,你應該讀
@RequestParam(value = "status", required = false, defaultValue = "STATUS")
假設,當然,前提是 「STATUS」 是用於StatusEnum.STATUS的字符串值。
否則可以使用StatusEnum.STATUS.name() – Dineshmohan 2016-07-28 21:24:16
@ user2344797只允許常量表達式。 – 2016-09-28 15:08:21
方法調用不是「常量表達式」。 – vanza 2012-07-19 06:13:10
請您詳細說明一下嗎? – 2012-07-20 08:55:38
「常量表達式」可以在編譯時解決。像靜態最終字段,字符串或數字一樣。 – vanza 2012-07-21 02:13:33