<span style="font-size:12px;">public static Object convertMap(Class type, Map map){
Object object = null;
try {
object = type.newInstance();
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//获得对象的所有属性
Field[] fields=type.getDeclaredFields();
for(int i=0;i<fields.length;i++){
String key = fields[i].getName();
String key1 = fields[i].getName();
if(key1.equals("zjlx")&& type.equals(CbfVo.class)) {
key1 = "cbf"+key1;
}
if(key1.equals("xb")){
key1 = "cyxb";
}
if(key1.equals("jtgx")){
key1 = "yhzgx";
}
if(key1.equals("sfdmb") && type.equals(CbfJtcy.class)){
key1 = "sfgyr";
}
if(key1.equals("cbf") && type.equals(CbfJtcy.class)){
key1 = "cbfbm";
}
if(key1.equals("zjlx") && type.equals(CbfJtcy.class)){
key1 = "cyzjlx";
}
if(key1.equals("zjlx") && type.equals(Fbf.class)){
key1 = "fzrzjlx";
}
if(map.containsKey(key1.toUpperCase())){
String tempKey = key.substring(0,1).toUpperCase()+key.substring(1,
key.length());
Method method;
try {
method = type.getMethod("set"+tempKey,new Class[]{fields[i].getType()});
Object args[] = new Object[1];
args[0] = map.get(key1.toUpperCase());
if(fields[i].getType().equals(Double.class)) {
method.invoke(object,Double.parseDouble(args[0]+""));
} else if(fields[i].getType().equals(Timestamp.class)) {
Format f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String d = null;
try {
d = f.format(f.parseObject(args[0]+""));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Timestamp ts = Timestamp.valueOf(d);
method.invoke(object,ts);
} else if(fields[i].getType().equals(Zjlx.class)) {
method.invoke(object,new Zjlx(args[0]+""));
} else if(fields[i].getType().equals(Cbflx.class)) {
method.invoke(object,new Cbflx(args[0]+""));
} else if(fields[i].getType().equals(Xb.class)) {
method.invoke(object,new Xb(args[0]+""));
} else if(fields[i].getType().equals(Jtgx2.class)) {
method.invoke(object,new Jtgx2(args[0]+""));
} else if(fields[i].getType().equals(Sfdmb.class)) {
method.invoke(object,new Sfdmb(args[0]+""));
} else if(fields[i].getType().equals(Cbf.class)) {
method.invoke(object,new Cbf(args[0]+""));
} else {
method.invoke(object,args);
}
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(fields[i].getName());
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(fields[i].getName());
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(fields[i].getName());
}
}
}
return object;
}</span>
Map对象通过反射转化为JavaBean对象转化
最新推荐文章于 2024-05-23 15:35:07 发布