大概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() });
}
用以上代码来调用方法,绝对万无一失