反射によるjavaクラスのプロパティの取得と値の割り当て

3545 ワード

自分で書く方法は、Objectタイプのオブジェクトを入力してカスタムjavaクラスに値を割り当て、値を返してタイプ変換します.注意タイプ変換.クラス反射によってクラスフィールドの配列を取得し、属性名を取得し、属性タイプを取得することを考えています.異なるタイプのjavaクラス属性に値を割り当てるループ比較
public Object getProperty(Object obj)throws  IllegalAccessException{
        //         
        Field[] field = obj.getClass().getDeclaredFields();
        for (int i = 0; i < field.length; i++) {
            Field f = field[i];
            f.setAccessible(true);
            // key:     
            String key = f.getName();
            //     
            String name = field[i].getName();
            name = name.substring(0, 1).toUpperCase() + name.substring(1);
            //      
            String type = field[i].getGenericType().toString();
            Method method = null;
            try {
                try {
                    if(type.equals("class java.lang.String")){
                        method = obj.getClass().getMethod("set"+name,String.class);
                        //           String               
                        method.invoke(obj, "");
                    }
                    if(type.equals("class java.lang.Integer")){
                        method = obj.getClass().getMethod("set"+name,Integer.class);
                        //           Integer        1
                        method.invoke(obj, 1);
                    }
                    if(type.equals("int")){
                        method = obj.getClass().getMethod("set"+name,int.class);
                        //           int  
                        method.invoke(obj, 2);
                    }
                    //        ,      
                } catch (InvocationTargetException e) {
                    e.printStackTrace();
                }
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            }
        }
        return obj;
    }

文章の内容は私がネットの各方面の知識の学習を通じて、理解して、総括して、編集します.学習にのみ使用します.コピーネットワークと同じコードがあり、テストの実行に合格したコードの正確性のみを宣言します.