可能性の重複:それはこの例外をスローときどきは、メソッドのスロー例外の比較:比較の方法は、その一般的な契約に違反し
class TimeComparatorTipo0 implements Comparator { @Override public int compare(Object a, Object b) { String Time1 = ((DataImportedTipo0) a).ora; Long VolTot1 = Long.parseLong(((DataImportedTipo0) a).volume_totale); String Time2 = ((DataImportedTipo0) b).ora; Long VolTot2 = Long.parseLong(((DataImportedTipo0) b).volume_totale); if (Time1.equals(Time2)) { if (VolTot1.compareTo(VolTot2) > 0) return 1; else return -1; } else return Time1.compareTo(Time2); } };
:
why does my compare method throw exception — Comparison method violates its general contract!
私はこのコードをしました:
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:868)
at java.util.TimSort.mergeAt(TimSort.java:485)
at java.util.TimSort.mergeForceCollapse(TimSort.java:426)
at java.util.TimSort.sort(TimSort.java:223)
at java.util.TimSort.sort(TimSort.java:173)
at java.util.Arrays.sort(Arrays.java:659)
at java.util.Collections.sort(Collections.java:217)
at ManageUrl.DownloadUrl.StartThreadDowloadTipo0(DownloadUrl.java:893)
at ManageUrl.DownloadUpdateWorkflow$ConsumerTipo0.run(DownloadUpdateWorkflow.java:278)
なぜですか?
1)どうすれば避けることができますか? 2)どうすればこの例外をキャッチできますか?
ありがとうございます。
あなたの正確なエラーの非常に最初のGoogleの結果、複数のソリューションだけでなく、原因を与えると、それがより効率的に行うことができます。 – Charles