方法setWrappedInstance
in org.springframework.beans.BeanWrapper
in 2.5.6 and was removed in 3.0.0。由于我正在将我的项目从2.5迁移到3.0,因此我收到了错误。我调查和实施类org.springframework.beans.BeanWrapperImpl
仍然有执行方法setWrappedInstance
。从春季2.5迁移到春季3.0.5
下面是我的项目中引起麻烦的一段代码。
public FieldComparator(String fieldName, Class clazz) {
_fieldName = fieldName;
_bw = new BeanWrapperImpl(clazz);
}
public int compare(Object o1, Object o2) {
if (o1 == null && o2 == null) return 0;
else if (o1 == null) return -1;
else if (o2 == null) return 1;
// otherwise
_bw.setWrappedInstance(o1);
Comparable v1 = (Comparable) _bw.getPropertyValue(_fieldName);
_bw.setWrappedInstance(o2);
Comparable v2 = (Comparable) _bw.getPropertyValue(_fieldName);
return NullsLowComparator.INSTANCE.compare(v1, v2);
}
所以会是确定的,如果我只是取代_bw
实现与BeanWrapperImpl
。我处于学习阶段,我相信春天强烈建议使用接口而不是实现类本身。
这是对标准做法的改变还是我可以继续进行简单的改变?
+1为好解释。不过,我赞成使用javadoc建议的PropertyAccessorFactory。如果它提到它,你的答案将是完美的。如果你编辑它,我会删除我的。 – 2011-12-28 10:45:43