版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
说明:本文章需求是Map通过反射转对象,Map为变量,对象也为变量
定义对象
public class TestA { private String name; private String adrees; //get set toString }
工具类
public static <T> T toClass(Class<T> clazz,Map<String,String> data){ T obj = null; Field[] fields = null; try { obj = clazz.newInstance(); fields = clazz.getDeclaredFields(); for(Field field:fields){ field.setAccessible(true); field.set(obj,data.getOrDefault(field.getName(),"")); } } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return obj; }
方法测试
public static void main(String[] args) { Class clazz = TestA.class; Map<String,String> data = new HashMap<>(); data.put("name","aaa"); data.put("adrees","adrees"); System.out.println(toClass(clazz,data)); }
每天加一点