您的位置:首页 > 其它

欢迎使用CSDN-markdown编辑器

2015-09-29 11:56 423 查看
package cn.bdqn;

import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {

public static void main(String[] args) throws NoSuchFieldException,
SecurityException, InstantiationException, IllegalAccessException,
IllegalArgumentException, ParseException {
String kv = "user.user.user.name=wangyajie&name=hello&user.user.name=123&user.id=1&id=110&user.age=10&date=1990-10-10&user.date=2000-10-10";
// kv = "name=wangyajie";
User user = (User) getInfo(User.class, kv);
System.out.println(user);

}

private static Object getInfo(Class<User> class1, String kv)
throws NoSuchFieldException, SecurityException,
InstantiationException, IllegalAccessException,
IllegalArgumentException, ParseException {
Object obj = class1.newInstance();
String s[] = kv.split("&");
for (String string : s) {
String key = string.split("=")[0];
String value = string.split("=")[1];
set(class1, key, value, obj);
}
return obj;
}

private static void set(Class<User> class1, String key, String value,
Object obj) throws NoSuchFieldException, SecurityException,
InstantiationException, IllegalAccessException,
IllegalArgumentException, ParseException {
if (key.contains(".")) {
Field field = class1.getDeclaredField(key.split("\\.", 2)[0]);
Class class2 = field.getType();
field.setAccessible(true);
if (field.get(obj) == null) {
field.set(obj, class2.newInstance());
}
set(class2, key.split("\\.", 2)[1], value, field.get(obj));
} else {
Field field = class1.getDeclaredField(key);
field.setAccessible(true);
String fieldTypeName = field.getType().getName();
if (fieldTypeName.equals("java.lang.String")) {
field.set(obj, value);
} else if (fieldTypeName.equals(int.class.getName())
|| fieldTypeName.equals(Integer.class.getName())) {
field.set(obj, Integer.valueOf(value));
} else if (fieldTypeName.equals(double.class.getName())
|| fieldTypeName.equals(Double.class.getName())) {
field.set(obj, Double.valueOf(value));
} else if (fieldTypeName.equals(long.class.getName())
|| fieldTypeName.equals(Long.class.getName())) {
field.set(obj, Long.valueOf(value));
} else if (fieldTypeName.equals(boolean.class.getName())
|| fieldTypeName.equals(Boolean.class.getName())) {
field.set(obj, Boolean.valueOf(value));
} else if (fieldTypeName.equals(Date.class.getName())) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
field.set(obj, sdf.parse(value));
} else if (fieldTypeName.equals(java.sql.Date.class.getName())) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
field.set(obj, new java.sql.Date(sdf.parse(value).getTime()));
}
// field.set(obj, value);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: