1、简介
枚举时常能够遇到,可每次面对都比较陌生,这次好好的把它给弄懂一下。主要分析的是在Android开发中的枚举应用场景,也是拓宽一下知识储备吧。
2、场景
简要用法1:
如下所示, 即枚举类型执行响应的操作,这个在 onTouchEvent等事件响应里枚举还是很多的。
/**
* 与普通类稍有不同的是,枚举类修饰为 enum
*/
public enum Role {
ADMIN,MANAGE,EMPLOYEE
}
public class Client {
public static void main(String[] args){
showRoleControl(Role.ADMIN);
}
/**
* 传递的是一个对象
* @param role
*/
public static void showRoleControl(Role role){
switch (role){
case ADMIN:
System.out.println("ADMIN 身份哦");
break;
case MANAGE:
System.out.println("MANAGE 身份哦");
break;
case EMPLOYEE:
System.out.println("EMPLOYEE 身份哦");
break;
default:
break;
}
}
// output: ADMIN 身份哦
}
简要方法2:
枚举类的抽象方法
/**
* 枚举类的抽象方法,枚举项必须继承
*/
public enum Role {
ADMIN{
@Override
public String getRoleString() {
return "ADMIN";
}
},
MANAGE {
@Override
public String getRoleString() {
return "MANAGE";
}
},
EMPLOYEE {
@Override
public String getRoleString() {
return "EMPLOYEE";
}
};
public abstract String getRoleString();
}
public class Client {
public static void main(String[] args){
showRoleControl(ADMIN);
}
/**
* 传递的是一个对象
* @param role
*/
public static void showRoleControl(Role role){
switch (role.getRoleString()){
case "ADMIN":
System.out.println("ADMIN 身份哦");
break;
case "MANAGE":
System.out.println("MANAGE 身份哦");
break;
case "EMPLOYEE":
System.out.println("EMPLOYEE 身份哦");
break;
default:
break;
}
}
// output: ADMIN 身份哦
}
简要方法3:
如下所示:相当于是传入构造了,Role有的,其枚举对象也都是相应的全部包括有
public enum Role {
ADMIN("ADMIN"),
MANAGE("MANAGE");
public String value;
private Role(String value){
this.value = value;
}
}