を使用して静的クラスの最終フィールドの値を取得します。私は、「名前」と「photoUri」フィールドの値を読みたいとき今は、私は次のクラス構造を有する反射
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);
}
}
を、それは私に「オブジェクトを提供しますクラス "のインスタンスではありません。され、次のコード:
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ポインタ例外を提供します。
「name」と「photoUri」のフィールドの値はどうすればわかりますか教えてください。
明確にするために、外部クラス 'TestClass'のコードを追加してください。 –