package model; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; public class ListToModel { public static void main(String[] args) { List<Object> userList = new ArrayList<Object>(); userList.add("ooP"); userList.add("男"); userList.add(18); User user = new User(); try { listToModel(userList, user); } catch (Exception e) { e.printStackTrace(); } System.out.println(user.getName() + "; " + user.getGender() + "; " + user.getAge()); } public static <T> void listToModel(List<Object> list, T t) throws Exception { Field[] fields = t.getClass().getDeclaredFields(); if (list.size() != fields.length) { return; } for (int k = 0, len = fields.length; k < len; k++) { // 根据属性名称,找寻合适的set方法 String fieldName = fields[k].getName(); String setMethodName = "set" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1); Method method = null; Class<?> clazz = t.getClass(); try { method = clazz.getMethod(setMethodName, new Class[] { list.get(k).getClass() }); } catch (SecurityException e1) { e1.printStackTrace(); return; } catch (NoSuchMethodException e1) { String newMethodName = "set" + fieldName.substring(0, 1).toLowerCase() + fieldName.substring(1); try { method = clazz.getMethod(newMethodName, new Class[] { list.get(k).getClass() }); } catch (SecurityException e) { e.printStackTrace(); return; } catch (NoSuchMethodException e) { e.printStackTrace(); return; } } if (method == null) { return; } method.invoke(t, new Object[] { list.get(k) }); } } }