根据Hashmap中存储的参数名称,或String类型的参数名,获取实体类中的参数

假设,现有一个实体类message,里面已经赋值过了

  1. Message0XB00Entity message = new Message0XB00Entity;

然后,有一个HashMap,里面的key是通过逻辑过滤之后,得到的map,map的Key就是实体类的参数名称

  1. Map<String, Boolean> filterMap = MapUtil.filter(map, (Filter<Map.Entry<String, Boolean>>) t ->!t.getValue()

最后,从map里遍历出key,通过反射,先get到message的参数,在set到一个新的实体类中

  1. Message0XB00Entity messageUpdate = new Message0XB00Entity();
  2. for (String key : filterMap.keySet()) {
  3. //通过反射,得到message中的参数名为key的get方法中的参数
  4. Object fieldValue = ReflectUtil.getFieldValue(afterUpdateMsg, key);
  5. //通过反射,得到字段名称为key的set方法,向messageUpdate中,set进参数
  6. ReflectUtil.setFieldValue(messageUpdate, key, fieldValue);
  7. }
  8. System.out.println(messageUpdate);

ReflectUtil工具类需要加入依赖:

  1. <!--hutool-->
  2. <dependency>
  3. <groupId>cn.hutool</groupId>
  4. <artifactId>hutool-all</artifactId>
  5. <version>5.1.2</version>
  6. </dependency>