Java實(shí)現(xiàn)轉(zhuǎn)跳不同系統(tǒng)使用枚舉加switch的方式示例
因有個(gè)判斷需要處理不同系統(tǒng)類型跳轉(zhuǎn)不同系統(tǒng)??紤]用switch + 枚舉的方式。
具體使用案例如下:
package com.b2b.common.constant;
import com.base.utils.base.StringUtils;
/**
* 系統(tǒng)類型枚舉
* @author shijing
*/
public enum SystemType {
ERP(0,"ERP"),
ORDER_PLATFORM(1,"訂貨平臺(tái)"),
PERSONAL(2,"個(gè)人中心系統(tǒng)"),
SHOP_MALL(3,"商城"),
PARTNER(4,"伙伴系統(tǒng)");
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+枚舉的使用案例:
/**
* 區(qū)分不同系統(tǒng)類型,登錄不同系統(tǒng)
* @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的系統(tǒng)類型,然后區(qū)分是哪個(gè)系統(tǒng)實(shí)例用戶登錄
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:
//訂貨平臺(tái)
orderPlatformLoginByCheck(paramMap);
loginData.setData(user);
break;
case PERSONAL:
//個(gè)人中心
loginData = personalLogin(user);
break;
default:
LOGGER.info("系統(tǒng)類型不滿足");
break;
}
return loginData;
}
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- 詳解java中if語(yǔ)句和switch的使用
- Java中switch的三種用法方式
- 淺談java switch如果case后面沒有break,會(huì)出現(xiàn)什么情況?
- java中的switch case語(yǔ)句使用詳解
- Java枚舉類型在switch語(yǔ)句正確使用方法詳解
- Java Switch對(duì)各類型支持實(shí)現(xiàn)原理
- Java switch使用原理及實(shí)例解析
- Java switch多值匹配操作詳解
- Java switch關(guān)鍵字原理及用法詳解
- JAVA字符串類型switch的底層原理詳析
- Java switch 語(yǔ)句如何使用 String 參數(shù)
- java中switch選擇語(yǔ)句代碼詳解
- Java中Switch用法代碼示例
- Java基礎(chǔ)之switch分支結(jié)構(gòu)詳解
相關(guān)文章
解決mybatis-plus3.4.1分頁(yè)插件PaginationInterceptor和防止全表更新與刪除插件SqlE
這篇文章給大家介紹了在Spring.xml文件中配置mybatis-plus3.4.1分頁(yè)插件PaginationInterceptor和防止全表更新與刪除插件SqlExplainInterceptor過時(shí)失效問題解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-12-12
JavaWeb入門教程之分頁(yè)查詢功能的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了JavaWeb入門教程之分頁(yè)查詢功能的簡(jiǎn)單實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
spring security獲取用戶信息的實(shí)現(xiàn)代碼
這篇文章主要介紹了spring security獲取用戶信息的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
基于opencv+java實(shí)現(xiàn)簡(jiǎn)單圖形識(shí)別程序
這篇文章主要給大家介紹了如何基于opencv+java實(shí)現(xiàn)簡(jiǎn)單圖形識(shí)別程序的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01
Java如何將String轉(zhuǎn)換成json對(duì)象或json數(shù)組
這篇文章主要介紹了Java如何將String轉(zhuǎn)換成json對(duì)象或json數(shù)組,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
java 實(shí)現(xiàn)計(jì)數(shù)排序和桶排序?qū)嵗a
這篇文章主要介紹了java 實(shí)現(xiàn)計(jì)數(shù)排序和桶排序?qū)嵗a的相關(guān)資料,需要的朋友可以參考下2017-02-02
基于Transactional事務(wù)的使用以及注意說明
這篇文章主要介紹了Transactional事務(wù)的使用以及注意說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Springboot之@Async不執(zhí)行原因及分析
這篇文章主要介紹了Springboot之@Async不執(zhí)行原因及分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09

