这篇文章就不介绍枚举类是什么了,感兴趣的可以看下历史的这篇文章,Java enum枚举详解今天要分享的主要是下面的这个示例程序了,全面解析了开发中会遇到的问题的解决方法。
耗费了一点时间写了这些方法的使用,接下来我们整个程序的代码都完全提供了出来,由于方法名称可以见名知意,过多的解释性说明就不介绍了。
package com.wpw.springbootjuc.enum002; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.experimental.Accessors; import java.util.ArrayList; import java.util.List; import java.util.Objects; @AllArgsConstructor @Getter @Accessors(chain = true) public enum ColorEnum { YELLO(0, "黄色"), BLUE(1, "蓝色"), RED(2, "红色"), WHITE(3, "白色"), BLACK(4, "黑色"), GREEN(5, "绿色"); /** * code码 */ private Integer code; /** * 颜色名称 */ private String name; /** * @return 获取颜色名称数据集合 */ private static List<String> ofColorNameList() { List<String> colorNameList = new ArrayList<>(); for (ColorEnum c : ColorEnum.values()) { colorNameList.add(c.getName()); } return colorNameList; } /** * @return 获取颜色状态码数据集合 */ private static List<Integer> ofColorCodeList() { List<Integer> colorCodeList = new ArrayList<>(); for (ColorEnum c : ColorEnum.values() ) { colorCodeList.add(c.getCode()); } return colorCodeList; } /** * 判断颜色名称是否相等 * * @param colorName 颜色名称 * @return true/false */ private static boolean check(String colorName) { Objects.requireNonNull(colorName, "颜色名称不能为空"); for (ColorEnum c : ColorEnum.values()) { if (colorName != null && c.getName().equals(colorName)) { return true; } } return false; } /** * 根据颜色名称获取所对应的code值 * * @param colorName 颜色名称 * @return 颜色所对应的code */ public static int getColorCode(String colorName) { Objects.requireNonNull(colorName, "颜色名称不能为空"); for (ColorEnum c : ColorEnum.values()) { if (colorName != null && colorName.equals(c.getName())) { return c.getCode(); } } return -1; } /** * 根据颜色Code获取颜色名称 * * @param colorCode 颜色Code * @return 颜色名称 */ public static String getColorName(Integer colorCode) { Objects.requireNonNull(colorCode, "状态码不能为空"); preCheck(colorCode); for (ColorEnum c : ColorEnum.values()) { if (colorCode != null && colorCode != -1 && colorCode.equals(c.getCode())) { return c.getName(); } } return null; } private static void preCheck(Integer colorCode) { if (colorCode == -1) { throw new IllegalArgumentException("颜色状态码不能为-1"); } } public static void main(String[] args) { ofColorNameList().stream().forEach(x -> System.out.println(x)); System.out.println(); ofColorCodeList().stream().forEach(x -> System.out.println(x)); boolean checkFlag = check("蓝色"); System.out.println("checkFlag = " + checkFlag); String colorName = getColorName(0); System.out.println("colorName = " + colorName); int colorCode = getColorCode("红色"); System.out.println("colorCode = " + colorCode); String colorName1 = getColorName(-1); System.out.println("colorName1 = " + colorName1); } } ---来自腾讯云社区的---用户3625239
微信扫一扫打赏
支付宝扫一扫打赏