フィールド値を取得できません。実行しようとしているのは、実行時にオブジェクトを取得することです。私が間違っているところを教えてください。反射を使用してフィールド値を取得する
Test.class
import java.lang.reflect.Field;
public class Test {
public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, SecurityException,
IllegalArgumentException, IllegalAccessException {
final Field field = Class.forName("com.logging.EX").getDeclaredField("value");
field.setAccessible(true);
field.get(Class.forName("com.logging.EX"));
}
}
EX.class
public class EX {
private String value;
public EX(){
value="data";
}
/**
* @return the value
*/
public String getValue() {
return value;
}
/**
* @param value
* the value to set
*/
public void setValue(String value) {
this.value = value;
}
}
'value'はインスタンスフィールドです。 EXのインスタンスはどこですか? – Radiodef
実行時にEXのオブジェクトを取得しようとしています。 – rama
'value'フィールドを取得するには、' value'がインスタンスフィールドなので 'EX'のインスタンスが必要です。現在、あなたのコードはエラーである 'com.logging.EX.class.value'に相当する処理を試みます。 – Radiodef