编程文汇

common-beanutils对chain式setter无效

如果我们生成的setter是chain式的,setter的返回值是this,你会发现BeanUtils.copyXxx不起作用了,函数执行完毕后,属性还是null。

这是因为beanutils默认只查找返回值为void的setter,如果能让beanutils识别返回this的setter就好了。

其实beanutils的作者早就为我们想好了,FluentPropertyBeanIntrospector就是为此而来,我们把它加入beanutils的属性识别器就行,就一行代码:

PropertyUtils.addBeanIntrospector(new FluentPropertyBeanIntrospector());

先执行如上代码,我们再次进行bean copy,就应该已经正常工作了。