In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-02-27 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/01 Report--
这篇文章主要讲解了"Java枚举类在生产环境中怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java枚举类在生产环境中怎么使用"吧!
使用
大体分为确定业务场景状态、定义枚举类、自定义查询方法、测试效果等几个部分。
1、确定业务场景状态
以我工作中实际的项目为例,智慧医院在挂号、门诊缴费时需要使用支付功能,我们目前实现了以下几种支付形式:微信小程序支付、微信H5支付、支付宝小程序支付、支付宝生活号支付、微信医保支付。
那么,我们就可以针对这几种支付形式定义一个枚举类专门维护,今后需要新增、修改以及删除时,只需要修改这个枚举类即可。
2、定义枚举类public enum PayTypeEnum { WEI_XIN_MINI_APP("1", "wxma", "微信小程序支付"), WEI_XIN_H5("2", "wxh6", "微信H5支付"), ZFB_MINI_APP("3", "zfbma", "支付宝小程序支付"), ZFB_H5("4", "zfbh6", "支付宝生活号支付"), WEI_XIN_MEDICAL("5", "wxmedical", "微信医保支付"); private final String id; private final String code; private final String label; PayTypeEnum(final String id, final String code, final String label) { this.id = id; this.code = code; this.label = label; } public String getId() { return id; } public String getCode() { return code; } public String getLabel() { return label; } }3、自定义查询方法
枚举类我们定义了id、code、label,那么我们使用过程中可能需要根据id获取枚举值、根据code获取枚举值(本人大部分时候都定义的这两个),甚至根据label获取枚举值,因此可以根据需要自定义自己的查询方法。
/** * 根据id获取枚举对象 * @param id */public static PayTypeEnum findById(String id) { for (PayTypeEnum type : PayTypeEnum.values()) { if (type.getId().equals(id)) return type; } return null;} /** * 根据code获取枚举对象 * @param code */public static PayTypeEnum findByCode(String code) { for (PayTypeEnum type : PayTypeEnum.values()) { if (type.getCode().equals(code)) return type; } return null;}
为了更完善,我们还可以再定义一个检查枚举类型的方法。
/** * 检查支付类型是否有效 * @param id */public static void check(String id) { if (StringUtils.isEmpty(id)) { throw new BadRequestAlertException("无效的支付类型", "PayTypeEnum", "无效的支付类型"); } for (PayTypeEnum type : PayTypeEnum.values()) { if (type.getId().equals(id)) { return; } } throw new BadRequestAlertException("无效的支付类型", "PayTypeEnum", "无效的支付类型");}
最终代码如下:
import com.web.rest.errors.BadRequestAlertException;import org.springframework.util.StringUtils; public enum PayTypeEnum { WEI_XIN_MINI_APP("1", "wxma", "微信小程序支付"), WEI_XIN_H5("2", "wxh6", "微信H5支付"), ZFB_MINI_APP("3", "zfbma", "支付宝小程序支付"), ZFB_H5("4", "zfbh6", "支付宝生活号支付"), WEI_XIN_MEDICAL("5", "wxmedical", "微信医保支付"); private final String id; private final String code; private final String label; PayTypeEnum(final String id, final String code, final String label) { this.id = id; this.code = code; this.label = label; } public String getId() { return id; } public String getCode() { return code; } public String getLabel() { return label; } /** * 根据id获取枚举对象 * @param id */ public static PayTypeEnum findById(String id) { for (PayTypeEnum type : PayTypeEnum.values()) { if (type.getId().equals(id)) return type; } return null; } /** * 根据code获取枚举对象 * @param code */ public static PayTypeEnum findByCode(String code) { for (PayTypeEnum type : PayTypeEnum.values()) { if (type.getCode().equals(code)) return type; } return null; } /** * 检查支付类型是否有效 * @param id */ public static void check(String id) { if (StringUtils.isEmpty(id)) { throw new BadRequestAlertException("无效的支付类型", "PayTypeEnum", "无效的支付类型"); } for (PayTypeEnum type : PayTypeEnum.values()) { if (type.getId().equals(id)) { return; } } throw new BadRequestAlertException("无效的支付类型", "PayTypeEnum", "无效的支付类型"); } }4、测试效果public static void main(String[] args) { System.out.println("============= 获取枚举类的值 ============="); System.out.println("获取id:" + PayTypeEnum.WEI_XIN_MINI_APP.getId()); System.out.println("获取code:" + PayTypeEnum.WEI_XIN_MINI_APP.getCode()); System.out.println("获取label:" + PayTypeEnum.WEI_XIN_MINI_APP.getLabel()); System.out.println("============= 根据自定义的查询方法获取值 ============="); System.out.println("根据id获取枚举对象:" + PayTypeEnum.findById("3")); System.out.println("根据code获取枚举对象:" + PayTypeEnum.findByCode("zfbma")); System.out.println("============= 类型有效性检查 ============="); System.out.print("检查1:"); PayTypeEnum.check("1"); System.out.println(); System.out.print("检查2:"); PayTypeEnum.check("999");}
打印如下:
============= 获取枚举类的值 =============
获取id:1
获取code:wxma
获取label:微信小程序支付
============= 根据自定义的查询方法获取值 =============
根据id获取枚举对象:ZFB_MINI_APP
根据code获取枚举对象:ZFB_MINI_APP
============= 类型有效性检查 =============
检查1:
检查2:无效的支付类型
Process finished with exit code 0
感谢各位的阅读,以上就是"Java枚举类在生产环境中怎么使用"的内容了,经过本文的学习后,相信大家对Java枚举类在生产环境中怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.