日期:2014-05-20 浏览次数:20820 次
public class ReflectTest {
public static void main(String[] args) {
User user = (User) test(
"userId:1;userName:frank;password:1234;date:1328241269734;count:1",
User.class);
System.out.println(user.getUserName());
}
private static Object test(String userStr, Class<?> clazz) {
try {
String[] str = userStr.split(";");
Object user = clazz.newInstance();// 初始化一个对象
Field[] fields = clazz.getDeclaredFields();// 获取该对象所有字段
for (String str1 : str) {
for (Field field : fields) {
String c = field.getType().getName();// 字段类型
if (field.getName().equals(str1.split(":")[0])) {
field.setAccessible(true);// 把字段设置为可访问
if (c.equals("int")) {
field.setInt(user, Integer
.parseInt(str1.split(":")[1]));
} else if (c.equals("java.lang.String")) {
field.set(user, str1.split(":")[1]);
} else if (c.equals("java.lang.long")) {
field.setLong(user, Long
.parseLong(str1.split(":")[1]));
}
}
}
}
return user;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}