方法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