package com.blade.kit; import com.blade.kit.reflect.ConvertKit; import com.blade.kit.reflect.ReflectKit; import java.lang.reflect.Field; import java.util.Map; public final class ObjectKit { private ObjectKit() { } @SuppressWarnings("unchecked") public static <T> T model(String slug, Class<?> clazz, Map<String, String> params) { try { Object obj = ReflectKit.newInstance(clazz); Field[] fields = clazz.getDeclaredFields(); if (null == fields || fields.length == 0) { return null; } for (Field field : fields) { field.setAccessible(true); if (field.getName().equals("serialVersionUID")) { continue; } String fieldName = StringKit.isNotBlank(slug) ? slug + "." + field.getName() : field.getName(); String fieldValue = params.get(fieldName); if (null != fieldValue) { Object value = ConvertKit.convert(field.getType(), fieldValue); field.set(obj, value); } } return (T) obj; } catch (NumberFormatException | IllegalAccessException | SecurityException e) { e.printStackTrace(); } return null; } }