-1
オブジェクトの内部要素の値を変更したいですか?オブジェクトの内部要素の値を変更する方法
は、以下のように試みたが、オブジェクトの内部要素の値を取得することができません。 最初にforループを実行すると正しい出力が得られます。しかし、第二のループのために)(
等、「CASE_INSENSITIVE_ORDER」のような公共静的ボイドsettingConcordionをオブジェクトのプロパティを与える例外をスロー{ここ
Object Collect = config.getInstance();
System.out.println("*********test Please ***"+Collect);
Class<? extends Object> c1 = Collect.getClass();
Field[] fields = c1.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Object name = fields[i].getName();
// 1st for loop works correctly
if (name.equals("webConfig")){
System.out.println("Changes is need to be done " + name +"service");
Class<? extends Object> c2 = name.getClass();
Map<String, Object> map1 = new HashMap<String, Object>();
fields= c2.getDeclaredFields();
for (int j = 0; j < fields.length; j++){
System.out.println(fields[j].getName());
//It gives me some properties values
}
}
}
が出力され: - これは、ループの最初の出力であります: -
INSTANCE
testTypes
keywordDrivenFilePath
kdConfig
xlsDataConfig
webConfig
これはループの第二の出力である: -
hash
serialVersionUID
serialPersistentFields
CASE_INSENSITIVE_ORDER
HASHING_SEED
hash32
hash32
私は、これらの要素
currentTestBed
hub
noproxy
password
port
proxy
.
.
.
etc
フル出力を投稿できますか? –
私があなたの要求を理解することができれば、あなたのコードはかなり過剰です。フィールドがセッターなしのプライベートフィールドとして意図的に実装されていない限り、値の変更は反映されません。 –