Java 获取枚举类对象(或稍微改造一下就成了枚举类遍历)

一、代码实现

枚举类BankEnum.java:

package com.xj.enums;

import java.util.Arrays;
import java.util.Iterator;

/**
 * @Author : xjfu
 * @Date : 2022/8/23 17:36
 * @Description : 枚举类的查找(稍微改造一下就成了枚举遍历)
 */
public enum BankEnum {
    ICBC("ICBC", "工商银行"),
    CCB("CCB", "建设银行"),
    BOC("BOC", "中国银行"),
    ABC("ABC", "农业银行"),
    BCOM("BCOM", "交通银行"),
    CMB("CMB", "招商银行");

    private String code;
    private String desc;

    BankEnum(String code, String desc){
        this.code = code;
        this.desc = desc;
    }

    /**get 或 set方法**/
    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    /**
     * 方法一 for each:根据code获得对应的BankEnum
     * @param code
     * @return
     */
    public static BankEnum getEnumByForEach(String code){
        BankEnum[] enums = BankEnum.values();
        for(BankEnum e : enums){
            if(e.getCode().equals(code)){
                return e;
            }
        }

        return null;
    }

    /**
     * 方法二 迭代器:根据code获得对应的BankEnum
     * @param code
     * @return
     */
    public static BankEnum getEnumByIterator(String code){
        Iterator iterator = Arrays.stream(BankEnum.values()).iterator();
        while(iterator.hasNext()){
            BankEnum e = iterator.next();
            if(e.getCode().equals(code)){
                return e;
            }
        }

        return null;
    }

    /**
     * 方法三 Lambda:根据code获得对应的BankEnum  因为Lambda是Java 8才有的新特性,固只能在Java 8及以上版本使用
     * @param code
     * @return
     */
    public static BankEnum getEnumByLambda(String code){
        return Arrays.stream(BankEnum.values()).filter(e -> e.getCode().equals(code)).findFirst().orElse(null);
    }
}

测试类EnumTest.java:

package com.xj.enums;

/**
 * @Author : xjfu
 * @Date : 2022/8/23 17:53
 * @Description : 测试类
 */
public class EnumTest {
    public static void main(String[] args) {
        //调用方法一
        System.out.println(BankEnum.getEnumByForEach("ICBC").getDesc());
        //调用方法二
        System.out.println(BankEnum.getEnumByIterator("ICBC").getDesc());
        //调用方法三
        System.out.println(BankEnum.getEnumByLambda("ICBC").getDesc());
    }
}

运行结果:

Java 获取枚举类对象(或稍微改造一下就成了枚举类遍历)_第1张图片

 二、参考

1.Java Enum 枚举用法 遍历枚举 获取枚举对象_HaHa_Sir的博客-CSDN博客_java 获取枚举对象

你可能感兴趣的:(Java,java)