From b9779e894464ec534bebdd230a7239b6d1964ddb Mon Sep 17 00:00:00 2001 From: Solution-Lin <148463711+Solution-Lin@users.noreply.github.com> Date: Fri, 3 Jan 2025 11:45:24 +0800 Subject: [PATCH] =?UTF-8?q?refactor(file/excel):=20=E4=BC=98=E5=8C=96=20Ba?= =?UTF-8?q?seEnum=20=E8=BD=AC=E6=8D=A2=E5=99=A8=20(#10)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/converter/ExcelBaseEnumConverter.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/continew-starter-file/continew-starter-file-excel/src/main/java/top/continew/starter/file/excel/converter/ExcelBaseEnumConverter.java b/continew-starter-file/continew-starter-file-excel/src/main/java/top/continew/starter/file/excel/converter/ExcelBaseEnumConverter.java index bc6f6c91..7ebe1317 100644 --- a/continew-starter-file/continew-starter-file-excel/src/main/java/top/continew/starter/file/excel/converter/ExcelBaseEnumConverter.java +++ b/continew-starter-file/continew-starter-file-excel/src/main/java/top/continew/starter/file/excel/converter/ExcelBaseEnumConverter.java @@ -16,7 +16,6 @@ package top.continew.starter.file.excel.converter; -import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ClassUtil; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.CellDataTypeEnum; @@ -34,7 +33,7 @@ import top.continew.starter.core.enums.BaseEnum; * @see BaseEnum * @since 1.2.0 */ -public class ExcelBaseEnumConverter implements Converter> { +public class ExcelBaseEnumConverter implements Converter> { @Override public Class supportJavaTypeKey() { @@ -50,17 +49,17 @@ public class ExcelBaseEnumConverter implements Converter> { * 转换为 Java 数据(读取 Excel) */ @Override - public BaseEnum convertToJavaData(ReadCellData cellData, - ExcelContentProperty contentProperty, - GlobalConfiguration globalConfiguration) { - return this.getEnum(BaseEnum.class, Convert.toStr(cellData.getData())); + public BaseEnum convertToJavaData(ReadCellData cellData, + ExcelContentProperty contentProperty, + GlobalConfiguration globalConfiguration) { + return this.getEnum(contentProperty.getField().getType(), cellData.getStringValue()); } /** * 转换为 Excel 数据(写入 Excel) */ @Override - public WriteCellData convertToExcelData(BaseEnum value, + public WriteCellData convertToExcelData(BaseEnum value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { if (null == value) { @@ -76,11 +75,11 @@ public class ExcelBaseEnumConverter implements Converter> { * @param description 描述 * @return 对应枚举 ,获取不到时为 {@code null} */ - private BaseEnum getEnum(Class enumType, String description) { + private BaseEnum getEnum(Class enumType, String description) { Object[] enumConstants = enumType.getEnumConstants(); for (Object enumConstant : enumConstants) { if (ClassUtil.isAssignable(BaseEnum.class, enumType)) { - BaseEnum baseEnum = (BaseEnum)enumConstant; + BaseEnum baseEnum = (BaseEnum)enumConstant; if (baseEnum.getDescription().equals(description)) { return baseEnum; }