package com.zwc.www.test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class OperateEnum {
//first emun
enum PeopleTypeOne{RED,YELLOW,BLACK};
//second emun
public enum PeopleTypeTwo{
RED("a","#111111"),
YELLOW("b","#222222"),
BLACK("c","#333333");
private String value1;
注意:这里的定义可以定义为final 完全可以编译通过,可以运行,好像这是java的一个bug
private String value2;
注意这里的构造方法,应该与你上面的定义,保持一致,
还有:不能定义为public ,只能是默认的权限,或者是private
PeopleTypeTwo(String value1,String value2){
this.value1 = value1;
this.value2 = value2;
}
注意:这里的方法的定义,完全是为了程序外面的访问,如下面main函数的调用,
这里,其实完全可以用一个get方法,直接返回对应的值,如 #222222 ,但是为了测试这里是否支持map,所以,就用了map,下面的例子,也调用了map,具体可以,参考下面的代码,
public Map<String,String> getMap(){
Map<String,String> map = new HashMap<String,String>();
map.put(this.value1, this.value2);
return map;
}
}
public static void main(String[] args) {
//first emun
PeopleTypeOne p1 = PeopleTypeOne.BLACK;
System.out.println("tradition:" + (p1.ordinal() + 1));
//second emun
PeopleTypeTwo p2 = PeopleTypeTwo.RED;
Map<String,String> map = p2.getMap();
Iterator<String> i = p2.getMap().keySet().iterator();
while(i.hasNext()){
String key = i.next();
String value = map.get(key);
System.out.println("key=" + key + " value=" + value);
}
}
}