public enum Week {
MON(1,"星期一"),
TUE(2,"星期二"),
WED(3,"星期三");
private Integer key;
private String value;
Week(Integer key, String value) {
this.key = key;
this.value = value;
}
public String getvalue(){
return this.value;
}
public Integer getkey(){
return this.key;
}
/**
* 根据key 获取枚举对象
*/
public static Week getWeekBykey(Integer key){
Week[] weeks = Week.values();
for (Week week : weeks) {
if ( week.getkey().equals(key) ) {
return week;
}
}
return null;
}
/**
* 根据value 获取枚举对象
*/
public static Week getWeekByvalue(String value){
if ( null == value ) {
return null;
}else{
for (Week week : Week.values()) {
if ( week.getvalue().equals(value) ) {
return week;
}
}
}
return null;
}
@Override
public String toString() {
return "Week{" + "key=" + key + ", value='" + value + '\'' + '}';
}
}
public class Main {
public static void main(String[] args) {
testEnum();
}
private static void testEnum() {
Week mon = Week.MON;
System.out.println(mon.getkey() + ":" + mon.getvalue());
System.out.println(Week.TUE.toString());
// 每个枚举元素都有一个编号
System.out.println(Week.MON.ordinal());
System.out.println(Week.TUE.ordinal());
System.out.println(Week.WED.ordinal());
// 比较的是编号
System.out.println(Week.MON.compareTo(Week.TUE));
// name()
System.out.println(Week.MON.name());
System.out.println(Week.TUE.name());
System.out.println(Week.WED.name());
// valueOf()
Week wed = Week.valueOf(Week.class, "WED");
System.out.println(wed);
// switch 枚举
Week tue = Week.TUE;
switch ( tue ){
case MON:
System.out.println("星期一");
break;
case TUE:
System.out.println("星期二");
break;
case WED:
System.out.println("星期三");
break;
default:
System.out.println("default");
break;
}
}}