根据Map 填充对象中与 key 相同 field名称的值

tech2024-01-25  70

/** * 根据Map 填充对象中与 key 相同 field名称的值 * @param tEntity 返回实体 * @param objectMap * @param <T> 返回实体 * @return */ public static <T> T fillEntity(Class<T> tEntity,Map<String,Object> objectMap){ T entity= ClassUtil.createInstance(tEntity,true); if(null==objectMap || objectMap.isEmpty()){ return entity; } List<Field> fields= Arrays.asList(tEntity.getDeclaredFields()); for(Map.Entry<String,Object> entry : objectMap.entrySet()){ Field field=fields.stream().filter(x->x.getName().equals(entry.getKey())).findFirst().orElse(null); if(null != field && null != entry.getValue()){ field.setAccessible(true); try { field.set(entity, ConvertUtils.convert(entry.getValue(),field.getType())); } catch (IllegalAccessException e) { logger.error("fillEntity field:{} value:{} error:{}",field.getName(),entry.getValue()); } } } return entity; }
最新回复(0)