zoukankan      html  css  js  c++  java
  • 通过反射机制,使用字符串动态拼接成方法名

    今天工作,本来在循环中计算得出值后,是加进集合中的,但是发现,数据表的结构是这个样子的:

    image_1c2qvedq66d01qtpb7nora1fvam.png-58.2kB

    对应的,实体类的属性就是这个样子的:

    image_1c2qvcg8b11p0iqv10fv1aie19a69.png-101kB

    如果是这样,我就不能往insert方法中传集合了,否则列根本对不上,只能传赋过31天值之后的对象。

    那么问题来了,需要在循环中,根据当前遍历的次数,使用字符串动态拼接为方法名,向实体类对象中赋值,使用到了Java中的反射机制。

    EnergyDayPlan energyDayPlan=new EnergyDayPlan();    //实体类
    Class<?> c = energyDayPlan.getClass();      //获取到该类class
    ...
    
    for(int i=1;i<=12;i++){
    	...
    	...
    	
    	for(int j=1;j<=lastDayOfMonth;j++){
    		...
    
            //字符串拼接成方法名,获取该方法
            Method method=c.getMethod("setD"+j, BigDecimal.class);      
            //invoke代表执行该方法,第一个参数为该对象,第二个参数是该方法需要得到的参数,没有可以为空
            method.invoke(energyDayPlan, avgArr[index]);
        }
    }
    
  • 相关阅读:
    求一个数字各个位的数字之和
    二进制和十进制的转换 分别用python和js实现
    pymysql 获取插入数据的主键id
    js03.事件
    02.js运算符
    jsonpath
    01.js控制台
    2.命令补充
    hashmap
    正则表达式的补充
  • 原文地址:https://www.cnblogs.com/VitoYi/p/8277081.html
Copyright © 2011-2022 走看看