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<BankEnum> 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());
    }
}

运行结果:

 二、参考

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值