の中にsetWrappedInstance
というメソッドがあり、2.5.6で削除され、3.0.0で削除されました。プロジェクトを2.5から3.0に移行する過程でエラーが発生します。私は調査し、実装クラスorg.springframework.beans.BeanWrapperImpl
にはまだ方法setWrappedInstance
が実装されています。Spring 2.5からSpring 3.0.5への移行
以下は私のプロジェクトのコードであり、問題を引き起こしています。私はちょうどBeanWrapperImpl
で_bw
実装を交換する場合
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);
}
だから、それは大丈夫だろう。私は学習段階にあり、春は実装クラスそのものではなくインターフェイスを使用することを強く示唆していると私は信じています。
この変更は標準的な方法とは異なりますか、または単純な変更を行ってもかまいませんか?
+1良い説明です。私は、PropertyAccessorFactoryをjavadocの示唆に基づいて使用することをお勧めします。それが言及されていればあなたの答えは完璧です。それを編集すると私は削除されます。 –