Java基礎之枚舉妙用
對於枚舉,初學Java的時候可能我們就已經接觸過了,但是在畢業前,其實一直都不知道真正工作裡面枚舉是怎麼用的,枚舉有什麼用?接下來,博主就介紹枚舉在實際工作中的一種使用情境,本文只適合初級的小菜鳥看哈,大神看了可別嘲笑這是水文哦,哈哈!
一、使用情境
在實際的工作中,比如我有一個選擇家庭關係的下拉選擇框,大家都是會是value和desc的組合,一般我們儲存到資料庫的都是value(英文),然後使用者看到的是desc(中文)。但是我很多個頁面會用到這樣的下拉框,甚至可能很多個系統會用到,需要保持資料來源的一致性,因此可以用一個枚舉儲存起來,然後提供一個介面,所有前端展示的資料來源都是從這個介面裡面擷取。
可能看了這段文字仍然有點蒙,下面直接上代碼,結合代碼應該就清晰明了了。
二、使用執行個體
2.1、建立枚舉如下
package com.luo.test;public enum FamilyRelation { /** 父母 */ PARENT("PARENT", "父母"), /** 配偶 */ SPOUSE("SPOUSE", "配偶"), /** 兄弟 */ BROUTHER("BROUTHER", "兄弟"), /** 姐妹 */ SISTER("SISTER", "姐妹"), /** 同學 */ SCHOOLMATE("SCHOOLMATE", "同學"), /** 朋友 */ FRIEND("FRIEND", "朋友"); private String value; private String desc; private FamilyRelation(String value, String desc) { this.setValue(value); this.setDesc(desc); } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; }}
2.2、枚舉的使用
接下來,我們需要做的可能就是,擷取上面枚舉的值,然後儲存到list裡面,如果使用springmvc的話,只需要將這個list傳遞到前端,然後前端使用js放到select節點裡面。
這裡之講解將枚舉放到list部分。
先建一個dto如下:
package com.luo.test;public class FamilyRelationDto { //關係值 private String value; //關係描述 private String desc; public String getValue() { return value; } public void setValue(String value) { this.value = value; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; }}
將遍曆枚舉,將枚舉裡面的值放到list裡面:
package com.luo.test;import java.util.ArrayList;import java.util.List;public class EnumTest { public static void main(String args[]){ //遍曆枚舉 System.out.println("----------遍曆枚舉-------------"); for(FamilyRelation familyRelation : FamilyRelation.values()){ System.out.println(familyRelation.getValue() + ":" + familyRelation.getDesc()); } //將枚舉存放到list裡面 List list = new ArrayList(); for(FamilyRelation familyRelation : FamilyRelation.values()){ FamilyRelationDto familyRelationDto = new FamilyRelationDto(); familyRelationDto.setValue(familyRelation.getValue()); familyRelationDto.setDesc(familyRelation.getDesc()); list.add(familyRelationDto); } System.out.println("list的長度:" + list.size()); }}
2.3、運行結果
完成了,雖然內容有點短,但是又不合適跟其他結合在一起,因此就單獨寫了一篇部落格。太水勿怪哈。