数组转对象

来源:互联网 发布:按键精灵 数据库插件 编辑:程序博客网 时间:2024/05/01 16:46
package com.syas.common.utilities;import com.syas.web.models.FrmgerPfmceSearchModel;import java.lang.reflect.Constructor;import java.lang.reflect.Field;/** * Created by weigong on 2015/12/3. */public class ArrayToObject {        public static Object getObjectByArray(Object [] os,Class clazz){        Field [] fields = clazz.getDeclaredFields();        /*        Method methlist[] = clazz.getDeclaredMethods();        for (int i = 0; i < methlist.length; i++) {            Method m = methlist[i];            System.out.println("=====获取所有的方法名称:" + m.getName());        }        String[] types1={"int","java.lang.String","boolean","char","float","double","long","short","byte"};        String[] types2={"Integer","java.lang.String","java.lang.Boolean","java.lang.Character","java.lang.Float","java.lang.Double","java.lang.Long","java.lang.Short","java.lang.Byte"};        for (int j = 0; j < fields.length; j++) {            fields[j].setAccessible(true);            // 字段名            System.out.print(fields[j].getName() + ":");            // 字段值            for(int i=0;i<types1.length;i++){                if(fields[j].getType().getName()                        .equalsIgnoreCase(types1[i])|| fields[j].getType().getName().equalsIgnoreCase(types2[i])){                    try {                        System.out.print(fields[j].get(clazz)+"     ");                    } catch (Exception e) {                        e.printStackTrace();                    }                }            }        }        */        Class[] argtype = new Class[fields.length];//代表构造方法的参数类型数组        //遍历数组的字段        for (int j = 0; j < fields.length; j++) {            fields[j].setAccessible(true);            // 字段名           // System.out.print(fields[j].getName() + ":");            argtype[j] = Object.class;        }        Constructor con;        Object obj = null;        try {            con = clazz.getDeclaredConstructor(argtype);            obj = con.newInstance(os);        } catch (Exception e) {            e.printStackTrace();        }        return obj;    }    public static  void main(String []args){        FrmgerPfmceSearchModel frmgerPfmceSearchModel = (FrmgerPfmceSearchModel)getObjectByArray(new Object[]{"A","B","C",1, 2}, FrmgerPfmceSearchModel.class);        System.out.println("=======obj:"+frmgerPfmceSearchModel.getEzboUname());    }}
0 0