Я искал вокруг на SOF, но не нашел такой основной вопрос, связанный с использованием BeanUtil.Как правильно использовать Apache Common BeanUtil's BeanComparator в интересах самоанализа?
У меня есть класс POJO, скажем, например UserPojo
чей код класса:
public class UserPojo{
private String name;
private int gender;
private int size;
//Setters
public void setName(String name) {this.name =name;}
public void setGender(int gender){this.gender=gender;}
public void setSize(int size) {this.size =size;}
//getters
public String getName() {return this.name;}
public int getGender(){return this.gender;}
public int getSize() {return this.size;}
}
Мой вопрос, как использовать BeanUtil для автоматического сравнения двух экземпляра данного компонента?
Я попытался это:
final BeanComparator<UserPojo> comparator = new BeanComparator<UserPojo>();
final int comparison = comparator.compare(expectedPojo, receivedPojo);
Но закончить на следующей ошибки:
java.lang.ClassCastException : UserPojo cannot be cast to java.lang.Comparable
Я понимаю, что мой Pojo должен реализовать стандартный Comparable
интерфейс, но этот способ сравнения не полагайтесь на самоанализ и импорт BeanUtil кажется очень бесполезным ...
Итак, как правильно его использовать?
Не знаю, '' compareToBuilde' и comparisonChain' они позволяют автообновления боба comprarison? –
Нет, но они помогают вам реализовать метод compareTo, так же, как 'EqualsBuilder' помогает вам построить метод' equals'. Не самое большое из преимуществ, которые я согласен, но мне нужно указать имена параметров (возможно, b/c использует отражение под капотом) в «BeanComparator» не подходит ко мне. – mystarrocks