简单来说枚举使用就是当我们业务具有相同意义的值时我们可以考虑使用枚举,并且他可以在编译时检测我们代码是否有问题,比如:一周的星期几,性别等这些都是确定含义的值,所以我们可以使用枚举进行业务开发。下面举其简单的例子:
package com.szpl.cai.proxy.dao;
public enum WeekDay {
MON(0,"星期一"),TUE(1,"星期二"),WED(2,"星期三"),HTU(3,"星期四"),FRI(4,"星期五"),SAT(5,"星期六"),SUN(6,"星期天");
//MON,TUE,WED,THU,FRI,SAT,SUN;
int code ;
String name;
private WeekDay(int code,String name){
this.code=code;
this.name=name;
}
//获取code
public int getCode(){
return code;
}
public static int getCode(String name){
for(WeekDay e : WeekDay.values()){
if(e.getName().equals(name)){
return e.getCode();
}
}
return -1;
}
public String getName(){
return name;
}
public String getName(int code){
for(WeekDay week : WeekDay.values()){
if(week.getCode() == code){
return week.getName();
}
}
return null;
}
public String toString(){
return name;
}
}
MON(0,"星期一"),TUE(1,"星期二"),WED(2,"星期三"),HTU(3,"星期四"),FRI(4,"星期五"),SAT(5,"星期六"),SUN(6,"星期天");
//MON,TUE,WED,THU,FRI,SAT,SUN;
int code ;
String name;
private WeekDay(int code,String name){
this.code=code;
this.name=name;
}
//获取code
public int getCode(){
return code;
}
public static int getCode(String name){
for(WeekDay e : WeekDay.values()){
if(e.getName().equals(name)){
return e.getCode();
}
}
return -1;
}
public String getName(){
return name;
}
public String getName(int code){
for(WeekDay week : WeekDay.values()){
if(week.getCode() == code){
return week.getName();
}
}
return null;
}
public String toString(){
return name;
}
}
//测试类及结果:
public static void main(String[] args) {
/*Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(haha.class);
enhancer.setCallback(new CglibProxy());
haha testClass = (haha)enhancer.create();
testClass.say();*/
//String s = "i love you";
//String s1 = "i love you";
//System.err.println(s ==s1);
WeekDay day = WeekDay.HTU;
System.out.println(day.getName());
}
/*Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(haha.class);
enhancer.setCallback(new CglibProxy());
haha testClass = (haha)enhancer.create();
testClass.say();*/
//String s = "i love you";
//String s1 = "i love you";
//System.err.println(s ==s1);
WeekDay day = WeekDay.HTU;
System.out.println(day.getName());
}
总结:枚举类型可以简单理解为一个特殊的类,并且构造方法必须为私有,将我们具有相同含义的值以一种特殊的形式进行显示,并且用很少的逻辑实现业务需求。