枚举类的
values()方法可以将枚举类中所有数据放在一个数组中返回,结合Arrays.stream()就能很方便的对它进行各种操作了。
应用举例:
在枚举类中定义一个静态方法,传递一个code参数,获得code对应的描述信息。
/*
* 订单状态枚举
*/
@Getter
@ToString
@AllArgsConstructor
public enum OrderStatusEnum{
success(0,"已收货"),
backing(1,"退货中"),
back_success(2,"退货成功"),
cancel(3,"取消订单");
private Integer code;
private String desc;
//通过code获取对应的desc
public static String getDescByCode(int code){
Optional<String> first = Arrays
.stream(values())
.filter(orderStatusEnum -> orderStatusEnum.getCode().equals(code))
.map(OrderStatusEnum::getDesc)
.findFirst();
if(!first.isPresent()){
return null;
}
return first.get();
}
}
测试
@Test
void testEnumValues(){
String desc = OrderStatusEnum.getDescByCode(2);
System.out.println(desc); // 退货成功
}