對于枚舉,初學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<FamilyRelationDto> list = new ArrayList<FamilyRelationDto>();
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、運行結果

完成了,雖然內容有點短,但是又不合適跟其他結合在一起,因此就單獨寫了一篇博客。太水勿怪哈。
- 前言
- Java生成中間logo的二維碼(還可以加上二維碼名稱哦)
- Java我的高效編程之常用函數
- AES加密解密&&SHA1、SHA加密&&MD5加密
- Java中synchronized的使用實例
- Java基礎之集合
- Java基礎之泛型
- Java基礎之枚舉妙用
- 那些年用過的一些前端框架
- 關于正則,那些年一直存在的疑惑解答(正則菜鳥不容錯過)
- 給pdf文件添加防偽水印logo(附工程源碼下載)
- SpringMVC+BUI實現文件上傳(附詳解,源碼下載)
- Java異常封裝(自己定義錯誤碼和描述,附源碼)
- javaweb異常提示信息統一處理(使用springmvc,附源碼)
- 關于Java,那些我心存疑惑的事(不斷更新中...)
- 深入Java虛擬機(1)——Java體系結構
- 深入Java虛擬機(2)——Java的平臺無關性
- 深入Java虛擬機(3)——安全
- 深入Java虛擬機(4)——網絡移動性
- Linux文件編輯命令詳細整理
- 阿里云服務器云數據庫免費體驗(Java Web詳細實例)
- 項目部署、配置、查錯常用到的Linux命令
- Shell腳本了解
- Ajax原理學習
- linux下安裝apache(httpd-2.4.3版本)各種坑
- JSP九大內置對象
- Servlet再度學習
- 開發人員系統功能設計常用辦公軟件分享
- java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener問題解決
- tomcat內存溢出解決,java.lang.OutOfMemoryError: PermGen space
- 《Java多線程編程核心技術》推薦
- 關于跳槽,是我心浮氣躁?還是我確實該離開了?
- Java I/O學習(附實例和詳解)
- Java經典設計模式之五大創建型模式(附實例和詳解)
- Java經典設計模式之七大結構型模式(附實例和詳解)
- Java經典設計模式之十一種行為型模式(附實例和詳解)
- Java內存管理
- SQL實例整理
- 數據庫面試常問的一些基本概念