1
我正在試圖建模Cobol系統的Java框架中工作。我有一個有很多屬性的類StudentRecord。調用父對象內的屬性對象的方法
class StudentRecord extend BaseRecord {
...
public CobolString firstName;
public CobolString lastName;
...
}
class CobolString {
...
private String content;
public setValue(String str){
content = str;
}
}
假設我有一個instanse studentA類型的StudentRecord,字符串中的firstName值是'Max'。我想使用Java反射將屬性firstName更新爲'John'。通常,我做如下:
Class aClass = studentA.class;
Field field = aClass.getField("firstName");
field.set(studentA, new CobolString("John"));
因爲這個框架是模型Cobol,它有一些奇怪的行爲和要求。其中之一是我需要使用CobolString的setValue()方法爲firstName設置新的值,以確保系統正常工作。
例如:無反射,它需要我做:
studentA.firstName.setValue("John");
與反思,如果我這樣編寫下,studentA仍然有新的名字,但它變得陌生到其他對象/方法和斜面與他人一起工作!
那麼我怎樣才能使用Java反射來爲firstName設置新的值。我的意思是我如何從父對象studentA獲取子對象firstName,然後用新值「John」在其上調用方法「setValue」。
感謝您的幫助。
是的,我看到的更新。我很難理解OP在尋找什麼。我認爲就是這樣。 +1。 –
非常感謝。這就是我要找的。 – bnguyen82