ローンのステータスがアクティブ、拒否、保留中、承認済みであるローンのコレクションをソートしようとしています。アクティブローンが最も優先順位が高く、他のものはどんな順序でも使用できます。私はComparatorインターフェースのcompare()を実装しました。発生原因:java.lang.IllegalArgumentException:比較メソッドが一般契約に違反しています
ここのここでの比較()
@Override
public int compare(Object o1, Object o2) {
LoanAccountData loanAccountData1 = (LoanAccountData) o1;
LoanAccountData loanAccountData2 = (LoanAccountData) o2;
if (loanAccountData1.getStatusStringValue().equals("Active")) {
return -1;
} else {
return 1;
}
}
2つのオブジェクトを完全に無視して比較しています。だからそれは意味をなさない。たとえば、両方のオブジェクトがアクティブな場合、aとbを比較するとa である必要があります。 –