开发实际需求:
系统有不同的角色,对应的角色可以实现对应的操作。
一般这种情况使用if就比较直观,例如
if(管理员){
做管理员操作
}
else if(普通用户){
做普通用户操作
}
但我们可以使用枚举+接口实现更简洁的写法
第一步:定义接口,表明能够做什么操作
/**
* @Interface RoleOperation
* @Desc Todo
* @Author CJQ
* @Class 2021/7/21 11:19
**/
public interface RoleOperation {
String op();
}
第二步:新建枚举,实现接口
// 系统管理员(有A操作权限)
ROLE_ROOT_ADMIN {
@Override
public String op() {
return "ROLE_ROOT_ADMIN:" + " has AAA permission";
}
},
// 订单管理员(有B操作权限)
ROLE_ORDER_ADMIN {
@Override
public String op() {
return "ROLE_ORDER_ADMIN:" + " has BBB permission";
}
},
// 普通用户(有C操作权限)
ROLE_NORMAL {
@Override
public String op() {
return "ROLE_NORMAL:" + " has CCC permission";
}
};
}```
第三步:直接调用
```java
public static void main(String[] args) {
judge("ROLE_ROOT_ADMIN");
}
public static void judge(String roleName ) {
// 一行代码搞定!之前的if/else灰飞烟灭
String op = RoleEnum.valueOf(roleName).op();
System.out.println(op);
}```