アクセサ実行速度検証
メンバー名指定して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);