現有如下枚舉,假設需要找出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:退回