我有下面的類結構得到一個靜態類的最後一個字段的值:使用反射
private static class MyStaticClass {
public final String name;
public final String photoUri;
private MyStaticClass(String pName, String pPhotoUri) {
this.name = pName;
this.photoUri = pPhotoUri;
}
public static MyStaticClass getNewMyStaticClass(String pName) {
return new MyStaticClass(pName, null);
}
}
現在,當我想讀「名」和「photoUri」字段的值,它給了我「對象不是類的一個實例「。以下是代碼:
void printValues() {
try {
Class cls = Class.forName("my.pkg.name.TestClass$MyStaticClass");
for(Field field: cls.getDeclaredFields()) {
System.out.println("Field name: " + field.getName());
System.out.println("Field value: " + field.get(cls));
}
} catch (Throwable e) {
e.printStackTrace();
}
}
我也嘗試在field.get(null)處傳遞「null」來讀取值,但它給出了空指針異常。
請幫幫我,我怎樣才能讀取字段「名稱」和「photoUri」的價值?
爲了清楚起見,請添加外部類「TestClass」的代碼。 –