项目开发中常用枚举做常量参数的使用:今天我们分享一下
1、空对象枚举:
//颜色枚举
public enum Colors {
RED, GREEN, BLANK, YELLOW
}
2、单个对象枚举:
//请求头设置
public enum RequestHeaderEnum {
language("en"),
token("token"),
uid("X-UID"),
lang("Accept-Language"),
device("X-Devices"),
version("X-Version"),
flag("true");
private String head;
RequestHeaderEnum(String head) {
this.head = head;
}
public String head() {
return head;
}
}
3、多参数枚举:
import java.util.HashMap;
import java.util.Map;
/**
* @author wanghuainan
* @date 2020/10/11
*/
public enum NanTestEnum {
/**
* 定义的枚举对象,每个对象可以有N个参数,一般都是三个之内
*/
talk("token","akey","aname"),
flag("fd","okey","oname"),
cookie("uuid","nkey","nanname");
private String head;
private String userKey;
private String userName;
NanTestEnum(String head,String userKey,String userName) {
this.head = head;
this.userKey = userName;
this.userName = userName;
}
/**
* set方法一般情况不能使用
* @param head
*/
public void setHead(String head){
this.head = head;
}
public String getHead() {
return head;
}
public void setUserKey(String userKey){
this.userKey = userName;
}
public String getUserKey() {
return userKey;
}
public void setUserName(String userName){
this.userName = userName;
}
public String getUserName() {
return userName;
}
/**
* 根据head 查询 对象
*/
private static final Map<String,NanTestEnum> nanEnumMap = new HashMap<>();
static {
for (NanTestEnum nanTestEnum : NanTestEnum.values()){
nanEnumMap.put(nanTestEnum.getHead(),nanTestEnum);
}
}
/**
* 根据head 查询 userKey
*/
private static final Map<String,String> userKeyMap = new HashMap<>();
static {
for (NanTestEnum nanTestEnum : NanTestEnum.values()){
userKeyMap.put(nanTestEnum.getHead(),nanTestEnum.getUserKey());
}
}
/**
* 根据head 查询 userName
*/
private static final Map<String,String> usernameMap = new HashMap<>();
static {
for (NanTestEnum nanTestEnum : NanTestEnum.values()){
usernameMap.put(nanTestEnum.getHead(),nanTestEnum.getUserName());
}
}
/**
* 通过head 查询对象
* @param head
* @return
*/
public static NanTestEnum gettestEnum(String head){
return nanEnumMap.get(head);
}
/**
* 通过head 查询userKey
* @param head
* @return
*/
public static String getTestUserKey(String head){
return userKeyMap.get(head);
}
}
4、main方法测试结果:
到此、枚举使用分享完毕,下次我们系统分享一下枚举原理,敬请期待!