SOF에서 검색했지만 BeanUtil 사용과 관련된 기본적인 질문을 찾지 못했습니다.Apache Common BeanUtil의 BeanComparator를 올바르게 사용하여 인트로 스펙 션의 이점을 얻는 방법은 무엇입니까?
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을 사용하는 것입니다 :
나는 POJO 클래스의 누구 클래스 코드 예를 UserPojo
에 대한 말을 할 수 있나요?
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
내가, 내 뽀조 표준 Comparable
인터페이스를 구현해야 이해하지만 이런 식의 비교는 의존하지 않는 인트로 스펙 션과 BeanUtil의 임포트는 매우 쓸모없는 것처럼 보입니다 ...
그래서 올바르게 사용하는 방법은 무엇입니까?
는'compareToBuilde' 및 몰라'comparisonChain'들이 자동적 인 콩 comprarison이 가능합니까? –
아니요,하지만'compareTo' 메소드를 구현하는 데 도움이됩니다. 단지'EqualsBuilder'가'equals' 메소드를 만드는 데 도움이됩니다. 가장 큰 장점은 아니지만 'BeanComparator'에서 매개 변수 이름을 지정해야 할 필요가 있습니다. (아마도 b/c를 사용합니다.) BeanComparator에서 나와 잘 맞지 않습니다. – mystarrocks