如何修改easyexcel(当前版本4.0.3)支持native-image构建

(1) Add MyBeanMap



public class MyBeanMap extends HashMap<String, Object> {
    private Object bean;

    public Object getBean() {
        return bean;
    }

    public void setBean(Object bean) {
        this.bean = bean;
    }

    public Object put0(String key, Object value) {
        return super.put(key, value);
    }

    //更新map,更新bean
    @Override
    public Object put(String key, Object value) {
        Field field = ReflectionUtils.findField(bean.getClass(), key);

        //修改bean
        if (field != null) {
            boolean accessible = field.isAccessible();
            try {
                if (!accessible) {
                    ReflectionUtils.makeAccessible(field);
                }
                ReflectionUtils.setField(field, bean, value);
            } finally {
                if (!accessible) {
                    field.setAccessible(accessible);
                }
            }
        }
        return super.put(key, value);
    }

    public Object get(String key) {
        //bean用法
        return super.get(key);
    }
}

(2) Add MyBeanMapUtils

import org.springframework.util.ReflectionUtils;

public class MyBeanMapUtils {
    public static MyBeanMap create(Object bean) {
        MyBeanMap map = new MyBeanMap();
        map.setBean(bean);
        //1.首次初始化map
        ReflectionUtils.doWithFields(bean.getClass(), field -> {
            field.setAccessible(true);
            Object value = ReflectionUtils.getField(field, bean);
            if (value != null) {
                map.put0(field.getName(), value);
            }
        });
        return map;
    }
}

(2) Add reference:

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </dependency>

(3) Modify code:
BeanMap dataMap = BeanMapUtils.create(resultModel);
For:

MyBeanMap dataMap=MyBeanMapUtils.create(resultModel);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值