定义枚举
package com.zygh.investigation.control.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.stream.Stream;
/**
* 状态枚举
*
* @author admin
*/
@Getter
@AllArgsConstructor
public enum StatusEnum {
/**
* 开启
*/
ENABLE(0, "开启"),
/**
* 关闭
*/
DISABLE(1, "关闭");
/**
* 状态值
*/
private final Integer value;
/**
* 状态名
*/
private final String description;
public static StatusEnum convert(Integer value) {
return Stream.of(values())
.filter(bean -> bean.value.equals(value))
.findAny()
.orElse(ENABLE);
}
public static StatusEnum convert(String description) {
return Stream.of(values())
.filter(bean -> bean.description.equals(description))
.findAny()
.orElse(ENABLE);
}
}
使用枚举
package com.zygh.investigation.control.common.excel.convert;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.zygh.investigation.control.common.enums.StatusEnum;
/**
* @Description 状态转换
* @Author wpz
* @Date 2024/06/25 10:12
*/
public class StatusConvert implements Converter<Integer> {
@Override
public Class<?> supportJavaTypeKey() {
return Integer.class;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}
@Override
public Integer convertToJavaData(ReadConverterContext<?> context) {
return StatusEnum.convert(context.getReadCellData().getStringValue()).getValue();
}
@Override
public WriteCellData<?> convertToExcelData(WriteConverterContext<Integer> context) {
return new WriteCellData<>(StatusEnum.convert(context.getValue()).getDescription());
}
}