Я пытаюсь переопределить метод compareTo, чтобы иметь возможность использовать Arrays.sort(), но когда я это делаю, кажется, что он не работает.
Я не получаю никаких ошибок, но у меня есть тестер, который проверяет и возвращает ошибку. Я должен сравнить «общие продажи» сравниваемых товаров.
Вот сравнение с методом, сравнивающим два элемента ItemSales.
@Override
public int compareTo(ItemSales item) {
return Double.compare(item.totalSales, this.totalSales);
}
Вот тестер тестирует это, кроме этого, конечно, есть еще много чего, но все остальное работает, даже clone().
ItemSales item = new ItemSales();
ItemSales newItem = new ItemSales(10.0, 50, 50.0);
ItemSales secondItem = (ItemSales) newItem.clone();
ItemSales[] myItems = { secondItem, item, newItem };
ItemSales[] myItems = { secondItem, item, newItem };
Arrays.sort(myItems);
if ( myItems[0].getTotalSales() == 860.0 && myItems[1].getTotalSales() == 870.0) {
System.out.println("ItemSalesDemo.main() - sorted, this is correct");
} else {
System.out.println("ItemSalesDemo.main() - ");
System.out.println("ItemSalesDemo.main() ------------------------");
System.out.println("ItemSalesDemo.main() - Error -");
System.out.println("ItemSalesDemo.main() ------------------------");
System.out.println("ItemSalesDemo.main() - item and newItem should have been equal");
System.out.println("ItemSalesDemo.main() - ");
System.exit(-1);
}
Как вы, возможно, знаете, я получаю сообщение об ошибке «элемент и новый элемент должны быть равны».
a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.
похоже, что вы пытаетесь использоватьcompareTo
немного похоже наequals
- person T.G   schedule 01.05.2014