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