### Question:
UtilJdbc { public static <T, S extends DeepJobConfig> T getObjectFromRow(Class<T> classEntity, Map<String, Object> row, DeepJobConfig<T, S> config) throws IllegalAccessException, InstantiationException, InvocationTargetException { T t = classEntity.newInstance(); Field[] fields = AnnotationUtils.filterDeepFields(classEntity); for (Field field : fields) { Object currentRow = null; Method method = null; Class<?> classField = field.getType(); try { method = Utils.findSetter(field.getName(), classEntity, field.getType()); currentRow = row.get(AnnotationUtils.deepFieldName(field)); if (currentRow != null) { method.invoke(t, currentRow); } } catch (IllegalAccessException | InvocationTargetException | IllegalArgumentException e) { LOG.error("impossible to create a java object from column:" + field.getName() + " and type:" + field.getType() + " and value:" + t + "; recordReceived:" + currentRow); method.invoke(t, Utils.castNumberType(currentRow, classField)); } } return t; }  static T getObjectFromRow(Class<T> classEntity, Map<String, Object> row, DeepJobConfig<T, S> config); static Map<String, Object> getRowFromObject(T entity); static Cells getCellsFromObject(Map<String, Object> row, DeepJobConfig<Cells, T> config); static Map<String, Object> getObjectFromCells(Cells cells);  }### Answer:
@Test public void testGetObjectFromRow() throws Exception { Map<String, Object> row = createRow(); MessageTestEntity entity = UtilJdbc.getObjectFromRow(MessageTestEntity.class, row, new JdbcDeepJobConfig(MessageTestEntity.class)); assertEquals(entity.getId(), row.get("id")); assertEquals(entity.getMessage(), row.get("message")); assertEquals(entity.getNumber(), row.get("number")); }