最近做的這個項目中,用到了大量的枚舉類,今天來記錄一下我遇到的問題,如果能幫到大家就更好了!
1.枚舉類如何轉爲json(在一個類的屬性中,這個枚舉類屬性如何直接使用在接收參數和向數據庫傳遞參數時需要自動轉化)
這裏需要用到兩個註解:
@JSONType(serializeEnumAsJavaBean = true)(import com.alibaba.fastjson.annotation.JSONType;)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)(import com.fasterxml.jackson.annotation.JsonFormat;)
2.前端向後端傳遞枚舉類中的value時,應注意以下幾點:
A)枚舉類中value以0開始,依次增加。
B)枚舉類中以value的值作爲順序,依次排列。
如果不以上述條件作爲依據,會出現如下bug:
我原本的枚舉類是這麼寫的,前端給我傳value的時候,傳的是1,但是我後臺接收到的參數是enable(0,"已啓用"),當傳0的時候,後臺接收到的參數爲disabled(1,"已停用")。
因爲枚舉類在接收值的時候看的是ordinal這個值。一定要讓這個值跟value相等,不然就會出現bug。ordinal記錄的是枚舉類中的屬性的順序,並根據這個順序找對應的值。所以如果你不注意上述條件的話,也可以直接讓前端把枚舉類中的值對應的變量傳進來。例如我這裏就是直接給我傳:disabled或者enable。