Java 列舉 switch的用法
因有個判斷需要處理不同系統型別跳轉不同 系統。 考慮用switch + 列舉的方式。 具體使用案例如下:
package com.b2b.common.constant;
import com.base.utils.base.StringUtils;
/**
* 系統型別列舉
* @author shijing
*/
public enum SystemType {
ERP(0,"ERP"),
ORDER_PLATFORM(1,"訂貨平臺"),
PERSONAL(2,"個人中心繫統"),
SHOP_MALL(3,"商城"),
PARTNER(4,"夥伴系統");
private int value;
private String desc;
SystemType(int value ,String desc) {
this.value = value;
this.desc = desc;
}
public int getValue() {
return value;
}
public String getDesc() {
return desc;
}
/**
* 通過value取列舉
* @param value
* @return
*/
public static SystemType getTypeByValue(String value){
if (StringUtils.isNull(value)){
return null;
}
int valueKey = Integer.parseInt(value);
for (SystemType enums : SystemType.values()) {
if (enums.getValue() == valueKey) {
return enums;
}
}
return null;
}
/**
* 通過value取描述
* @param value
* @return
*/
public static String getDescByValue(int value) {
for (SystemType enums : SystemType.values()) {
if (enums.getValue() == value) {
return enums.getDesc();
}
}
return "";
}
}
switch+列舉的使用案例:
/**
* 區分不同系統型別,登入不同系統
* @author shijing
* @param paramMap
* @param checkData
* @return
* @throws Exception
*/
private ErpResponse getLoginResponse(Map<String, Object> paramMap, ErpResponse checkData) throws Exception {
ErpResponse loginData = null;
Map<String,Object> user= (Map<String, Object>) checkData.getData();
//獲取user的系統型別,然後區分是哪個系統例項使用者登入
String sysBaseType = (String) user.get("sys_base_type");
SystemType systemType = SystemType.getTypeByValue(sysBaseType);
switch(systemType){
case ERP:
erpLogin((String) user.get("user_id"));
loginData.setData(user);
break;
case ORDER_PLATFORM:
//訂貨平臺
orderPlatformLoginByCheck(paramMap);
loginData.setData(user);
break;
case PERSONAL:
//個人中心
loginData = personalLogin(user);
break;
default:
LOGGER.info("系統型別不滿足");
break;
}
return loginData;
}
相關文章
- Java enum列舉類詳解 列舉的常見用法Java
- Swift列舉的全用法Swift
- Java 列舉(enum) 詳解7種常見的用法Java
- java中的列舉Java
- Java列舉Java
- Java 列舉、JPA 和 PostgreSQL 列舉JavaSQL
- 使用列舉ENUM替換Switch或If-Else
- Java 列舉(enum)Java
- java列舉類Java
- Java列舉-通過值查詢對應的列舉Java
- JAVA的陣列基本用法Java陣列
- java中的列舉型別Java型別
- Java基礎--列舉Java
- Java列舉解讀Java
- 【java】【列舉使用技巧】Java
- Java(4)列舉類Java
- 【java基礎】列舉Java
- 列舉的幾種使用案例(簡單,進階,switch,單例)單例
- ?Java基礎之Java列舉Java
- 聊一聊Java的列舉enumJava
- Java —— 列舉類(enum 類)Java
- java_06列舉類Java
- 深入理解 Java 列舉Java
- 再談java列舉enumJava
- Java - Enum 列舉型別Java型別
- Java 列舉 enum 詳解Java
- JAVA陣列的定義及用法Java陣列
- Day69.註解&列舉類的複習 -Java註解&列舉類Java
- java中的列舉型別學習Java型別
- 你可能不瞭解的java列舉Java
- Java列舉的策略設計模式 -DEVJava設計模式dev
- 列舉和列舉的取值範圍
- Java雙屬性列舉使用Java
- Java 集合列舉泛型(一)Java泛型
- 一文了解java列舉Java
- 使用Java JUnit框架裡的@Rule註解的用法舉例Java框架
- java基礎(十一) 列舉型別Java型別
- Java列舉類、註解和反射Java反射