/ ** *それらを割り当て * @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){ 戻り ヌル。 } }