今天遇到需求:导入Excel时候列头会发生变化,客户是大爷要求你改代码,

导入Excel是用easypoi做的,识别表头是用注解@Excel(name = "xxx")通过这个name来匹配

那你表头要动,我这个注解是硬编码

所以就有动态设置这个表头

public class JavaVo{

@Excel(name = "xxx")

private String userName;

//省略getset方法

}

ExcelImportUtil.importExcel(file.getInputStream(),  configClass(JavaVo.class), params);

代码如下

 private Class configClass(Class c , String val) {Field[] fields = c.getDeclaredFields();try {for(int i = 0;i < fields.length;i++){Field f = fields[i];Excel excelAn = f.getAnnotation(Excel.class);//Excel是注解类型if(excelAn == null){continue;}InvocationHandler h = Proxy.getInvocationHandler(excelAn);Field hField = h.getClass().getDeclaredField("memberValues");// 因为这个字段事 private final 修饰,所以要打开权限hField.setAccessible(true);// 获取 memberValuesMap memberValues = (Map) hField.get(h);// 修改 value 属性值  这里修改的是@Excel(name = "姓名")//name是keymemberValues.put("name", val);}} catch (Exception e) {e.printStackTrace();}return c;}

java注解之运行时修改字段的注解值相关推荐

  1. java只修改变的字段_java注解之运行时修改字段的注解值操作

    今天遇到需求:导入Excel时候列头会发生变化,客户是大爷要求你改代码, 导入Excel是用easypoi做的,识别表头是用注解@Excel(name = "xxx")通过这个na ...

  2. java通过注解修改字段名_java注解之运行时修改字段的注解值操作

    java注解之运行时修改字段的注解值操作,注解,字段,表头,属性,对象 java注解之运行时修改字段的注解值操作 易采站长站,站长之家为您整理了java注解之运行时修改字段的注解值操作的相关内容. 今 ...

  3. OpenRasp Java运行时修改字节码技术

    Java运行时修改字节码技术 Java运行时动态修改字节码技术,常用的有javassist asm来实现.不过最近在分析openrasp-java这块时,程序使用的javassist来动态插桩关键类, ...

  4. java 注解 runtime_自定义注解之运行时注解(RetentionPolicy.RUNTIME)

    对注解概念不了解的可以先看这个:Java注解基础概念总结 前面有提到注解按生命周期来划分可分为3类: 1.RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成clas ...

  5. ASP.NET Core 网站运行时修改设置如何自动生效

    点击蓝字 关注我 在ASP.NET Core中,如果修改了appsettings.json中的设置,那么默认情况下就得重启网站才能生效.有没有办法在修改设置后自动刷新并应用呢? 背景 首先,我们看看默 ...

  6. Java内存区域-运行时数据区域

    Java虚拟机在运行时将内存划分为以下五个不同区域. 1.程序计数器: 是一块较小空间,可以看作是当前线程所执行的字节码行号指示器.字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字 ...

  7. Unity——在运行时修改Animator Controller状态机中的动画片段

    在开发中,经常会有在运行时根据对象的不同状态来修改播放动画的需求.比如做一个射击游戏,那么持手枪时.攻击使用的动画片段明显是不能与持匕首时相同的. 原先用Legacy Animation时,是可以很方 ...

  8. .net报表控件ActiveReports教程:运行时修改数据(附源码)

    ActiveReports 是一款专注于 .NET 和 .NET Core 平台的报表控件.通过拖拽式报表设计器,可以快速地设计 Excel表格.Word文档.图表.数据过滤.数据钻取.精准套打等类型 ...

  9. MySQL修改字段的默认值和空值

    MySQL修改字段的默认值和空值 一.修改字段默认值 修改: ALTER TABLE 表名 ALTER COLUMN 字段名 SET DEFAULT 默认值 删除: ALTER TABLE 表名 AL ...

最新文章

  1. 反编译使用yield关键字的方法
  2. 编程语言性能实测,Go比Python更胜一筹?
  3. MySQL 用 limit 为什么会影响性能?
  4. 利用WCF的callback机制开发一个简单的多人游戏模型
  5. 战神背光键盘如何关系_4000元学生办公游戏本该如何选择?
  6. es6 --- 使用yield*命令遍历完全二叉树
  7. MariaDb数据库管理系统的学习(一)安装示意图
  8. 防篡改对象之密封对象
  9. 第五节:video标签的特性,你全都掌握了吗?
  10. java程序员_哪些书是不可错过的?Java程序员书单分享
  11. 快速配置vs2012+opencv
  12. eclipse导入jsp项目
  13. 安装torch与luarocks的一些问题
  14. Angluar编译过程中出现的TS2339问题
  15. 三层交换机实现不同vlan间通信
  16. 物理防火墙是什么?有什么作用?
  17. 外贸公司用邮件开发客户需要注意些什么?
  18. 实现一个简洁朴素的左侧贴边导航栏html+CSS+javaScript
  19. Power BI中的ArcGIS地图
  20. 关于 continue 用法

热门文章

  1. 基于MATLAB串级控制系统仿真设计,基于MATLAB的精馏塔控制系统设计.doc
  2. cetus权限连接主从mysql_cetus/cetus-rw.md at master · shop-zhang/cetus · GitHub
  3. 健身耳机什么牌子好、最好用的五款健身耳机推荐
  4. Microsoft JScript 运行时错误: 缺少对象,原因分析
  5. isalpha()库函数
  6. 自动生成正交表测试用例PICT
  7. 【matlab小技巧】寻找一个向量中最后一个非零元素的位置
  8. Microsoft的愚蠢
  9. HTML5 canvas 平铺的几种方法
  10. R语言使用Hmisc包的impute函数填充dataframe数据中特定数据列中的缺失值、将空值null用上一行和下一行值的平均值填充