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);
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);
Class<?> clazz = t.getClass();
try {
method = clazz.getMethod(setMethodName, new Class[] { list.get(k).getClass() });
e1.printStackTrace();
return;
String newMethodName
= "set" + fieldName.
substring(0,
1).
toLowerCase()
+ fieldName.substring(1);
try {
method = clazz.getMethod(newMethodName, new Class[] { list.get(k).getClass() });
e.printStackTrace();
return;
e.printStackTrace();
return;
}
}
if (method == null) {
return;
}
method.
invoke(t,
new Object[] { list.
get(k
) });
}
}
}