次のBeanクラスがあります。
_public class A{
private String field;
public String getField() {
return field;
}
private String setField(String field) {
this.field = field;
}
}
_
そして次のクラス:
_ public class B{
public static void main(String[] args){
A a = new A();
//do stuff
String f = //get a's field value
}
}
_
_class A
_の特定のオブジェクトのゲッターから返された値を取得するにはどうすればよいですか?もちろん、Method.invoke(Object obj, Object... args)
でメソッドを呼び出すことはできますが、_"get"
_プレフィックスを手動で記述したくありません。それを回避することは可能ですか?
_Java.beans.PropertyDescriptor
_の使用について
_Object f = new PropertyDescriptor("field", A.class).getReadMethod().invoke(a);
_
または少し長いバージョン(これは以前のものとまったく同じです)
_PropertyDescriptor pd = new PropertyDescriptor("field", A.class);
Method getter = pd.getReadMethod();
Object f = getter.invoke(a);
_
PropertyDescriptor
を使用すると、たとえば getReadMethod()
など、多くのことを実行できます
プロパティ値の読み取りに使用するメソッドを取得します。
したがって、field
のゲッターを表す_Java.reflect.Method
_のインスタンスを取得できます。あとは、結果を取得したいBeanで呼び出すだけです。
別の簡単な方法は、基本的なJavaリフレクションを使用することです。
Method fieldGetter = A.getClass().getMethod("getField");
String f = fieldGetter.invoke(A).toString();
それと同じくらい簡単です。乾杯!!