2

String フィールドを持つオブジェクトがあります。このフィールドを取得するには、次のように呼び出します。

Field field = someObj.getClass().getField("strField");

このインスタンスのフィールドの値を設定するField#set(Object)メソッドを設定しましたが、それぞれのゲッターは のようField#get(Object)ですField#get()

インスタンスの の値を取得するにはどうすればよいstrFieldですか?

4

3 に答える 3

7

を使用している場合java.lang.reflect.Field、「セッター」はField.set(Object,Object)であり、「ゲッター」はField.get(Object)です。どちらの場合も、最初のパラメーターはフィールドにアクセスするインスタンスです。

于 2013-06-27T02:40:53.087 に答える
2

プロパティの getter または setter メソッドがなくても、オブジェクト参照と Java リフレクションを使用して値を変更または取得できます。

import java.lang.reflect.Field;

public class Bean {

    private String strField;

    public static void main(String[] args) throws Exception {
        Bean bean = new Bean();
        Field field = bean.getClass().getDeclaredField("strField");
        field.set(bean, "Hello");
        System.out.println(field.get(bean));
    }

}
于 2013-06-27T02:54:20.197 に答える
1

最も簡単な方法はBeanUtilsを使用することです:

String s = BeanUtils.getProperty(someObj, "strField");

BeanUtils はプロパティを文字列に変換しようとすることに注意してください。プロパティのゲッターとセッターが必要です

于 2013-06-27T02:33:44.860 に答える