Java中善用通用的列舉物件類實現程式碼業務的判斷
阿新 • • 發佈:2020-08-18
場景
在業務開發中,獲取到某物件的屬性需要對該物件的屬性值進行判斷。
根據不同的屬性值從而執行不同的邏輯。
比如某班次物件有個班次型別屬性,其屬性值取值為:地面班次、井下班次、混合班次 。
在獲取該物件的班次型別屬性需要對該屬性值進行判斷,從而執行不同的邏輯。
注:
部落格:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程式猿
獲取程式設計相關電子書、教程推送與免費下載。
實現
此屬性值一般在資料庫中會關聯碼錶進行儲存顯示。
比如資料庫中儲存0,實際顯示地面班次。
但是在程式碼中總不能使用該屬性與是否等於0做判斷,這樣如果0以後要修改為代表別的內容,
那麼所有相關的程式碼都要修改。
我們可以在公共模組下新建一個列舉類
public enum Bclx { dm("0", "地面班制"), jx("1", "井下班制"), hh("2", "混合班制"); private final String code; private final String info; Bclx(String code, String info) { this.code = code; this.info = info; } public String getCode() {return code; } public String getInfo() { return info; } }
這裡定義的code就要與資料庫中儲存的屬性值的型別相對應。
然後在程式碼邏輯中這樣判斷
if(kqsjTian.getKqlx()!=null && kqsjTian.getKqlx().toString().equals(Bclx.dm.getCode())) { }
其中kqsjTian就是物件,getKqlx就是獲取班次型別這個屬性,然後與列舉類的dm的code進行對比。
這樣以後如果修改了地面所使用的code嗎這塊邏輯也不用修改。