優雅地使用列舉enum

2021-09-22 16:27:43 字數 1171 閱讀 2749

在開發中,我們可能會遇到這樣的問題:

某乙個物件的某些字段比如常見的***的狀態,欄位名字叫***status,在資料庫中儲存的時候存的值一般是數字,

比如:0 未處理 1 已處理  2 已取消

在介面展示的時候,我們不可能直接將數字展示,需要將它的實際含義進行對應展示,以前的自己**可能會這樣寫:

未處理

已處理已取消

其實寫這段**的時候,我們自己可能也知道,很low,如果寫了幾年**,水平還是這樣子,那麼。。。

今天,學會了一種「優雅」的寫**的方式:使用列舉

我們在寫後台**的時候,關於這樣子的資訊一般會定義乙個列舉類:

public enum paystatusenum implements codeenum

public integer getcode()

public void setcode(integer code)

public string getmsg()

public void setmsg(string msg)

}

我們返回到前端的乙個物件叫做orderdto,未做任何處理之前,返回的這個物件中關於狀態的儲存值就是數字,那麼在其中定義乙個getstatus的方法,通過此方法獲取想要的資訊:

$
orderdto中**如下:

public class orderdto 

//還有set/get方法

而這個方法,實質就是根據狀態碼code去獲取msg,那麼定義乙個介面,這裡抽象出來主要是為了單獨列出來成為乙個公用的方法,因為也許不僅僅只有支付狀態,可能還有訂單狀態,信用狀態等等,那麼不可能將同樣的邏輯**寫在每乙個enum類中。

public inte***ce codeenum
另外再寫乙個工具類,目的還是讓其稱為公用方法,只要是根據code獲取msg:

public class enumutils 

}return null;

}}

這樣子的寫法,真的非常優雅,並且對今後的擴充套件非常方便。其實還有許多地方都可以更加優雅的實現,那麼需要做的就是不斷地積累,並且將這些小技巧(設計模式)靈活應用。

前端如何優雅地使用列舉

在前端開發中我們經常遇到這樣一種情況 假設我們要渲染乙個訂單列表,後端返回的資料中包含這樣乙個字段 訂單狀態 orderstatus 0後端可能會告訴我們,它對應後端的這樣一組值 那麼我們在前端如何優雅地把後端所返回的值0轉換成字串已完成呢?這就是本文要討論的問題。為了引出我們的方案,我們先來看乙個...

ENUM 列舉使用總結

enum format string format public string getformat public void setformat string format enum colorspublic static void main string args 上面是列舉的兩種使用方式,我們以f...

enum 列舉的使用

第一步 生成列舉類 public enum orderstate 已受理 oms或排程已受理 processed 下訂單失敗 oms或排程受理失敗 order fail 已通知業務員收件 noticed courier 已取件 巴槍50或700操作 已取件 courier picked 異常收件 收...