JAVA enum(枚舉) 簡單應用

Enum枚舉類型出現在j2se1.5。

枚舉類型的實例都是常量,按照命名規則都用大寫字母,單詞之間用下劃線分隔。

枚舉類型的實例名也叫具名值。

在創建枚舉時,編譯器會自動加上toString()方法。編譯器還會加上ordinal()方法,

用來表示枚舉的常量的聲明順序,以及static values(),返回按聲明順序構成的常量數組。

創建枚舉時,需先定義enum實例,如果在enum實例之前定義了任何方法或屬性,

那麼在編譯時就會報錯.

values()方法是由編譯器在enum中加的statis,如果你講enum實例向上轉型爲Enum,

那麼values()方法就不可訪問了

內置枚舉:寫在一個類內部的枚舉

內置枚舉的好處是可以在類裏面寫多個枚舉,顯得簡單點

public class TestEnum{

public enum HelloEnum{
//枚舉類型
HELLO1("1","hello1"),HELLO2("2","hello2");

HelloEnum(String key,String value){
this.key=key;
this.value=value;
}
private final String key;

private final String value;

public String getKey() {
return key;
}

public String getValue() {
return value;
}

public static Map<String,String> getHelloList(){
Map<String,String> helloMap=new HashMap<String,String>();
helloMap.put("1","hello1");
helloMap.put("2","hello2");
return helloMap;
}
}

public enum Hello1Enum{
......
}
}
 

freemarker模板裏面顯示枚舉:
一種情況是從枚舉中取值:

(1).在struts2的actin中獲取枚舉的Map

(2).定義一個宏:
  <#function getHello param>
<#list helloMap?keys as key>
<#if ((key)?string==param)>
<#return helloMap[key]/>
</#if>
</#list>
  </#function>
 

(3).取枚舉值

${getHello(param?string)}

或者將枚舉放到select下拉框中

<@s.select list="list" listKey="key" listValue="value" name="object.name" headerKey="-1" headerValue="-初始值-"/>
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章