EasyPoi实现多语言国际化

NoSuchFieldException:这是一种反射异常,表示在尝试使用反射(通过类的属性,方法等信息)获取或访问一个不存在的字段(成员变量)时抛出的异常.例如,当使用"getField"或"getDeclaredField"方法来获取一个类的字段,但该字段在类中不存在时,就会抛出异常.

IllegalAccessException:这是一种访问权限异常,表示在尝试访问类的某个成员(字段,方法等)时,由于访问权限不足而无法成功访问.例如,如果尝试访问一个私有字段或方法,或者由于某种安全性限制而无法访问,就会导致"IllegalAccessException".

EasyPoi实现多语言国际化

下列方法中未写出如何国际化的具体逻辑,可根据自己项目实际情况做相应修改.

public static Class setExcelName (Class<?> entityClass) throws NoSuchFieldException, IllegalAccessException {

    //获取实体类中全部字段
    Field[] fields = entityClass.getDeclaredFields();

    for (Field field : fields) {
        //获取字段上的注解
        Excel anoExcel = field.getAnnotation(Excel.class);
        if (anoExcel != null) {
            //获取代理处理器
            InvocationHandler invocationHandler = Proxy.getInvocationHandler(anoExcel);
            //获取私有memberValues属性
            Field f = invocationHandler.getClass().getDeclaredField("memberValues");
            f.setAccessible(true);
            //获取实例的属性map
            Map<String, Object> memberValues = (Map<String, Object>) f.get(invocationHandler);
            //获取属性值
            String excelName = (String) memberValues.get("name");
            memberValues.put("name", newName);
        }
    }

    return entityClass;
}
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值