现有如下枚举,假设需要找出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:退回