失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java switch枚举类 Java 枚举 switch的用法

java switch枚举类 Java 枚举 switch的用法

时间:2019-06-24 20:00:46

相关推荐

java switch枚举类 Java 枚举 switch的用法

因有个判断需要处理不同系统类型跳转不同 系统。 考虑用switch + 枚举的方式。 具体使用案例如下:

package mon.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 paramMap, ErpResponse checkData) throws Exception {

ErpResponse loginData = null;

Map user= (Map) 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 switch枚举类 Java 枚举 switch的用法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。