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]);
        }
    }
    
  • 相关阅读:
    AJAX
    选择器
    断电原则
    radio为什么不能选择。急急急
    IBase<T>
    委托
    Log4Net
    博弈论 学习笔记
    解决You have new mail in /var/spool/mail/root提示
    Zookeeper分布式安装部署
  • 原文地址:https://www.cnblogs.com/VitoYi/p/8277081.html
Copyright © 2011-2022 走看看