萬無一失地通過反射呼叫方法
阿新 • • 發佈:2019-01-29
大概BeanUtils大半人都用過,MethodUtils用過的人少。最後寫一個東西需要通過反射呼叫方法,就自己通過簡單的反射來實現,測試通過,但是發現在多個ClassLoader的環境中有問題(尤其是有繼承關係的時候),明明有這個方法卻說沒有這個方法,或者獲取到了方法卻無法呼叫。
只能說我對反射的底層瞭解得還不多,做了不同的嘗試之後我放棄了,轉而使用MethodUtils中的方法:
Method method = MethodUtils.getAccessibleMethod(bean.getClass(),
"setProperty", new Class[] { String.class, String.class });
if(method!=null) {
MethodUtils.invokeExactMethod(bean, "setProperty",
new String[] { property.getName(),
property.getValue() });
}
用以上程式碼來呼叫方法,絕對萬無一失