java 反向映射机制_Java开发之如何使用反射机制解决规则映射

前言

在Java开发中,遇到过这样一个需求,那就是如何在不了解外部Excel结构的情况下,实现将Excel的每行数据导入到系统表中。实现思路是这样的,要想导入Excel,就要先将Excel中的每列数据与已知的数据库表做一一对应(映射),那么如何才能在页面上呈现表结构呢?没错,就是通过反射机制。

36f9d354ce2b672a0551eabe25e7de5c.png

什么是反射?

正常我们创建一个类,是在类中定义属性和方法,从而能够编译得到一个class文件,那么,将这个过程反过来,我们已知class类,来获取该类的属性和方法,就是反射。

反射的运用

1、定义一个student.class类

public class Student {

@ProCnName(cnName="学生ID")

private String id;

2、通过student.class获取学生的属性

Class studentClass=Class.forName("com.student.");

Field[] studentFields = studentClass.getDeclaredFields();

3、遍历每一项,将field与cell对应起来

for(Field pf:productfFields){

Object ooObject= entry.getValue();

String str0 = ooObject.toString();

String pfString = pf.getName();

}

4、通过Excel文件构造单元格:

Map.Entry entry =(Entry)iterator.next();

Cell cell = row.getCell((Integer)entry.getKey());

5、通过cell和field的对比做列对应

if(entry.getValue().equals(pf.getName())){

//这里面通过获取单元格的类型,来判断如何获取单元格的值,并将取到的值赋予给Student对象

}

结语

简单的一句话,就是通过类而取得该类中的属性和方法,就是反射。日常使用不是特别多,大家记住这种思路就好,什么时候用到了,再从这种思路上去想。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值