アクセサ実行速度検証

メンバー名指定してgetter実行したいなーと思ってmethod.invoke使う方法とPropertyDescriptor使う方法とどっちが早いのかと思ったので遊んでみる。
色々調べたり、なので結果は後ほど。

[method.invoke]

member = "get" + StringUtils.capitalize(member);
method = csvData.getClass().getMethod(member, null);
ret = method.invoke(csvData, null);

[PropertyDescriptor]

public class JavaBeanSample {
	private String str;

	public void setData(String s) {
		this.str = s;
	}

	public String getData() {
		return str;
	}
}
JavaBeanSample bean = new JavaBeanSample();

PropertyDescriptor pd = new PropertyDescriptor("data", JavaBeanSample.class);

//セッターメソッドを取得・実行
Method w = pd.getWriteMethod();
w.invoke(bean, new Object[] { "abc" });

//ゲッターメソッドを取得・実行
Method r = pd.getReadMethod();
String s = (String) r.invoke(bean, (Object[])null);
System.out.println(s);