Nesneleri Y koordinatlarına dayalı, karşılaştırılabilir bir sınıf kullanarak, değişen Y değerlerine göre sıralayan bir izometrik oyun yazıyorum. "Karşılaştırma yöntemi genel sözleşmesini ihlal ediyor" hatasını alıyorum! ve negatif bir sayı, 0, ya da ben öyle bu uygulayan pozitif bir sayı dönmek konusunda okudum:Java Karşılaştırılabilir Sınıf - Karşılaştırma yöntemi, genel sözleşmesini ihlal ediyor
public boolean equals(Entity e) {
if ((e.y-y)==0)
return (e.id == id);
return (e.y == y);
}
public int compareTo(Entity e) {
if ((e.y-y)==0)
return (e.id - id);
return (int) (e.y - y); // Render order by y coordinate
}
Ama hala hata alıyorum. Değerler değişirse veya başka bir şey yanlış mı yapıyorum diye sıralama çalışmaz mı?
'y 'alanınız ne tür? –
y şamandıralı tip –
Bu istisna mesajıyla ilgili çok sayıda soru var zaten. Göndermeden önce ara. Sorunuzun, önceki sorulardan birinin kopyası olmadığını gösterin. – Raedwald