论坛首页 Java企业应用论坛

让commons-beanutils支持匿名类的属性

浏览 2561 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-03-02  
我用的是最新的1.7的commons-beanutils,主要是垂涎它的nest setter
测试代码:
		Object obj=new Object(){
			private String param;
			public String getParam(){
				return param;
			}
			public void setParam(String val){
				param=val;
			}
		};
		BeanUtils.setProperty(obj, "param", "godie");
		assertEquals("godie",BeanUtils.getProperty(obj, "param"));

但是这时候出现了错误,找不到setter或者getter
我找了一下,在
org.apache.commons.beanutils.MethodUtils的getAccessibleMethod(Method method)
里面取class的时候取了DeclaringClass
        // If the declaring class is public, we are done
        Class clazz = method.getDeclaringClass();

将其替换为getClass,再处理一下method的访问权限
        // If the declaring class is public, we are done
        Class clazz = method.getClass();
        if (!method.isAccessible()) method.setAccessible(true);

这样之后测试就通过了。不知道这么弄会不会有什么副作用……
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics