में अपने सामान्य अनुबंध का उल्लंघन करती है मुझे जावा 7 में कुछ जावा कोड संकलित करने के बाद "इसके सामान्य अनुबंध का उल्लंघन" मिल रहा है, और फिर इसे चला रहा है।तुलना विधि जावा 7
मैंने Comparison method violates its general contract! Java 7 only पढ़ा है और मुझे पता है कि मेरे कोड के साथ कुछ गलत है जिसे जावा के पिछले संस्करणों में अनदेखा किया गया था। हालांकि मैं अपने कोड के साथ क्या गलत काम नहीं कर सकता। Collections.sort() त्रुटि उत्पन्न करता है।
मेरे कोड है:
public Comparator sortBySmoothDays() {
Comparator c = new Comparator() {
public int compare(Object arg0, Object arg1) {
Date date0 = ((PosObject)arg0).getDate();
Date date1 = ((PosObject)arg1).getDate();
double d1 = MyUtils.calcSmoothDays(date0, new Date());
double d2 = MyUtils.calcSmoothDays(date1, new Date());
if (d1 >= d2) {
return 1;
}
else {
return -1;
}
}
};
return c;
}
Comparator c = ComparatorUtils.getInstance().sortBySmoothDays();
Collections.sort(posList, c);
किसी को भी मदद कर सकते हैं? धन्यवाद!
JFI: इस अपवाद फेंकने के लिए एक नया Java7 सुविधा है। पुराने व्यवहार को एक नई सिस्टम प्रॉपर्टी के साथ कॉन्फ़िगर किया जा सकता है: java.util.Arrays.useLegacyMergeSort http://stackoverflow.com/a/8417446/450812 – alfonx