Java根据enum某个属性值获取枚举项


现有如下枚举,假设需要找出status=3的枚举项

public enum StatusEnum {
    DRAFT(1, "草稿"),
    CHECKING(2, "审核中"),
    REFUSE(3, "退回"),
    FINISH(4, "结束");

    private Integer status;
    private String remark;

    public Integer getStatus() {
        return status;
    }

    public String getRemark() {
        return remark;
    }

    StatusEnum(Integer status, String remark){
        this.status = status;
        this.remark = remark;
    }
}

使用Stream过滤,实现代码:

public static void main( String[] args )
{
    Optional<StatusEnum> optional = Arrays.stream(StatusEnum.values())
                .filter(p -> p.getStatus() == 3)
                .findFirst();
    if (optional.isPresent()){
        StatusEnum statusEnum = optional.get();
        System.out.println(String.format("status: %d,remark:%s", statusEnum.getStatus(), statusEnum.getRemark()));
    }
    else{
        System.out.println("找不到指定的枚举项");
    }
}

输出结果:
status: 3,remark:退回


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM