美文网首页
java通过反射方法给对象属性赋值

java通过反射方法给对象属性赋值

作者: 阿乐_822e | 来源:发表于2023-04-02 11:37 被阅读0次

问题来源:一个表中有将近20个字段,现在需要按照指定的时间范围来汇总每个字段,并把汇总的结果放在与此表对应的实体对象中返回。业务逻辑非常简单,就是在编码时需要一个一个属性的赋值,有些繁琐,此代码长度过长。
解决方法:使用循环,先取得每个属性的set方法,再使用反射来调用set方法赋值
代码如下:

public TomEnsure getTomEnsureStatis(String startDate,String endDate){        
        TomEnsure tomEnsure = new TomEnsure();    
        SqlRowSet result = null;
        int sumNumber = 0;
        //先得出各汇总字段
        String[] colStr = {"scheduled_task","special_task","chartered_task","other_task",
                "military_task","amount_task","domestic_task","area_task","internation_task",
                "passenger_task","manned_task","other_type_task","nonprofit_task",
                "amount_general_task","total_task"};
        for (String str :  colStr){
            String sql = "select sum(" + str + ")"
                    + " as sumNumber from t_tom_ensure_statis where statis_day between '"
                    + startDate + "' and '" + endDate + "'";
            result = statisticDataJdbcTemplate.queryForRowSet(sql);
            sumNumber = result.next() ? result.getInt("sumNumber") : 0;
            try {
                Method[] m = tomEnsure.getClass().getMethods();
                for (int i = 0; i < m.length; i++ ){
                    if (("set" + str.replace("_","")).toLowerCase().equals(m[i].getName().toLowerCase())){
                        m[i].invoke(tomEnsure,sumNumber);  //反射赋值
                        break;
                    }
                }
            }catch (Exception e){
                log.error(e.getMessage());
            }
        }
         

        return tomEnsure;
    }

相关文章

  • java反射-第3篇

    例子 通过反射动态给对象赋值

  • java反射和动态代理

    java反射 反射是程序运行时,通过反射直接操作对象或者类。获取类声明的属性和方法,调用方法或者构造对象,设置修改...

  • Java 反射

    Java反射Java反射API获取Class对象通过反射创建实例对象,调用公共方法通过反射调用私有方法 一.Jav...

  • Java基础之反射

    Java基础之反射 反射基本介绍 反射的使用通过反射调用属性和方法通过反射获取配置文件 反射基本介绍 Java反射...

  • Java学习笔记 30 - 反射的使用&不同对象的相同属

    使用反射,将不同对象的相同属性值相互赋值。总结三种实用方法:1)使用对象的get,set方法为属性赋值2)使用ja...

  • Java反射

    java通常是先有类再有对象,有对象我就可以调用方法或者属性。反射其实是通过Class对象来调用类里面的方法。通过...

  • JAVA 通过反射机制给Bean对象赋值

    public classReflectGetValueUtils { /** * 取出bean 属性和值 * *@...

  • 反射

    一、 注解的定义反射是通过class文件对象获取java类的构造方法、成员方法、属性、静态代码块等。二、使用 获取...

  • java 反射获取类对象的三种方式

    Java反射经常用到的就是获取对象中的属性,那么Java获取类对象就是必不可少的啦! Java实体类: 通过反射获...

  • 我不知道的KVC

    关于KVC应该不用介绍了,通过以下方法: 我们可以给对象的属性赋值或者读取属性值,通过配合runTime可以有很多...

网友评论

      本文标题:java通过反射方法给对象属性赋值

      本文链接:https://www.haomeiwen.com/subject/gxqrddtx.html