Class EnumWireValues
java.lang.Object
io.leandev.appfuse.json.EnumWireValues
enum 常數的 wire 值(純量形式)
與 LowercaseEnumJsonMapperCustomizer 套用的是同一條規則,差別只在誰呼叫:
Jackson 序列化物件時走 customizer,應用自己把 enum 轉成字串時走這裡。
出站手工序列化必須用它。 String.valueOf(e) 與 e.name() 走的是常數名(大寫),
不受任何 mapper 設定影響——同一個概念會因此在 API 回應與稽核事件裡呈現兩種值,
而欄位名往往還一樣,對照時才發現。
data.put("channel", EnumWireValues.of(row.getChannel())); // "email"
data.put("channel", String.valueOf(row.getChannel())); // "EMAIL" ——不一致
不適用的情況是投影:輸出的字串集合不等於 enum 常數集合(例如在既有狀態之外,
依時間再算出一個 EXPIRED)。那不是 enum 的 wire 值,維持該投影自身的形狀即可。
-
Method Summary
-
Method Details
-
of
實作DeclaredCodeEnum者回其宣告的代碼;其餘回常數名的小寫導出值。- Parameters:
constant- enum 常數,可為 null- Returns:
- wire 值;
constant為 null 時回 null
-