Operationクラスの属性と値

/ ** 
     *それらを割り当て
     * @paramのSUM
      * / 
    公共 ボイドSetFieldValue(CsFsessum SUM){ 
        String []型フィールド名 = ; getFiledName(SUM)
         のためにINT J = 0; J <fieldNames.length; J ++){      // 反復すべてのプロパティ 
            の文字列名=フィールド名[J];     // プロパティ名を取得
            IF(name.startsWith( "TIMEST" )){ 
                setFieldValueByName(SUM、名前、 0L ); 
            } 
        } 
        
    } 
    
    / **   
     *プロパティ名の配列を取得   
     * * /   
    プライベート 静的文字列[] getFiledName(物体O){   
        フィールド、[]フィールド = o.getClass()getDeclaredFields();.   
        のString []フィールド名 = 新しい新しい文字列[fields.length];  
         のためint型 I = 0; I <fields.length ;私は++ ){   
            フィールド名[I] = ;フィールド[I] .getNameは()
        }   
        を返す;フィールド名を   
    } 
    
    // 属性名によって属性に割り当てられた
    プライベート ボイドsetFieldValueByName(オブジェクトobj、文字列フィールド名、オブジェクト値){
          試み{   
               // 取得しますクラスファイルバイトオブジェクトobjの 
              クラスc =obj.getClass();
               // 取得クラスメンバ変数 
              フィールド、F = c.getDeclaredField(フィールド名);
               // キャンセル言語アクセスチェック 
              (f.setAccessible 真の);
               // 変数への値の割り当て
              f.setを(OBJ、値) ; 
          } キャッチ(例外E){     
              logger.info(「オブジェクト・フィールド名に割り当てにおけるエラー} {」、e.getMessage());     
          }    
         
    } 
    
    
    / * に係る属性プロパティ値の名前を取得   
     * * / 
    プライベート 静的オブジェクトgetFieldValueByName(文字列フィールド名物体O){  
         試み{    
            ストリングfirstLetter = fieldName.substring(0、1 ).toUpperCase();    
            文字列のゲッター = "GET" + firstLetter + fieldName.substring(1 );    
            メソッド方法。= o.getClass()getMethod(ゲッター、新しいクラス[] {})。    
            オブジェクト値 = method.invoke(O、新しいオブジェクト[] {})。    
            戻り値;    
        } キャッチ(例外e){    
             戻り ヌル
        }     
    }

 

おすすめ

転載: www.cnblogs.com/tang-guo/p/11106740.html