Interface DeclaredCodeEnum
public interface DeclaredCodeEnum
自帶對外代碼的列舉。
多數列舉的 wire 值可由常數名導出(見 LowercaseEnumJsonMapperCustomizer)。但當該概念
已有既存的對外代碼形式——政府代碼表、既有系統、已上線契約——代碼先於本系統存在,
導不出來也不該導:把院別代碼 A 導成 medical_institution 只會多一層對不上的翻譯。
實作本介面即宣告「這個列舉的 wire 值是 getCode(),不是常數名的導出值」。
兩個效果:
EnumWireValues.of(Enum)對它回getCode(),出站手工序列化因此自動正確。- 應用的架構閘門可據此分辨「宣告式代碼」與「純列舉」——前者用
@JsonValue getCode()讓 Jackson 送出代碼是正當機制,後者標@JsonValue才是脫隊。
顯示文字不屬本介面的職責(那是 getLabel() 一類的另一個表述);需要時由實作自行擴充。
public enum InstitutionType implements DeclaredCodeEnum {
MEDICAL_INSTITUTION("A"), // 院別代碼 ACC,見需求規格書
PUBLIC_HEALTH_CENTER("B");
private final String code;
InstitutionType(String code) { this.code = code; }
@Override public String getCode() { return code; }
}
-
Method Summary
-
Method Details
-
getCode
String getCode()該常數的對外代碼——即它的 wire 值。
-