Enum遍历和根据参数返回指定枚举类型

本文介绍了Java中枚举类型的遍历方法,通过Enum#values()进行枚举遍历,并展示了在实际项目中如何根据指定参数返回枚举实例的自定义方法应用,以及如何结合switch语句进行条件分支处理。
1.枚举的遍历

枚举遍历,采用Enum#values()

for(Enum enum:Enum.values()){
    ...
}
2.枚举遍历的运用

项目中我们经常需要根据指定参数类型获取对象实例,因此在枚举类中我们需要自定方法,实例如下:

import lombok.Getter;
@Getter
public enum NeitTaskTypeEnum {
    ZIP((short) 1), DES3((short) 2), ZIP_DES3((short) 3), BASE64((short) 4),
    ZIP_BASE64((short) 5), DES3_BASE64((short) 6), DES3_ZIP_BASE64((short) 7);

    private Short type;

    NeitTaskTypeEnum(Short type) {
        this.type = type;
    }

    public static NeitTaskTypeEnum getInstance(Short type) {
        for (NeitTaskTypeEnum taskType : NeitTaskTypeEnum.values()) {
            if (taskType.getType().equals(type)) {
                return taskType;
            }
        }
        return null;
    }
    
}
3.枚举遍历的扩展

枚举遍历values方法,枚举自定义方法:根据参数获取枚举实例

我们项目经常需要根据参数类型执行不同分支,即switch,下面给出switch+Enum+Enum自定义方法,

枚举类可以参考上面提到的枚举类:NeitTaskTypeEnum

public void method(String type){
    NeitTaskTypeEnum taskType = NeitTaskTypeEnum.getInstance(type);
    if (taskType != null) {
        switch (taskType) {
            case ZIP:
                zip();
                break;
            case DES3:
                des3();
                break;
            case BASE64:
                base64();
                break;
            default:
                break;
        }
    }
}

注意

  • switch表达式后面的数据类型只能是byte,short,char,int四种整型类型
  • 枚举类型和java.lang.String类型(jdk1.7 开始允许 )
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值