Class EnumWireValues

java.lang.Object
io.leandev.appfuse.json.EnumWireValues

public final class EnumWireValues extends Object

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 Details

    • of

      public static String of(Enum<?> constant)
      實作 DeclaredCodeEnum 者回其宣告的代碼;其餘回常數名的小寫導出值。
      Parameters:
      constant - enum 常數,可為 null
      Returns:
      wire 值;constant 為 null 時回 null