Tôi đang thực hiện một dự án java và tôi gặp phải vấn đề này và không biết cách sửa lỗi.MyClass không thể chuyển sang java.lang.Comparable: java.lang.ClassCastException
Các lớp học trong dự án của tôi (giản thể):
public class Item {
private String itemID;
private Integer price;
public Integer getPrice() {
return this.price;
}
}
public class Store {
private String storeID;
private String address;
}
public class Stock {
private Item item;
private Store store;
private Integer itemCount;
public Integer getInventoryValue() {
return this.item.getPrice() * this.itemCount;
}
}
Sau đó, tôi cố gắng sắp xếp một ArrayList
của Cổ vì vậy tôi tạo ra một lớp được gọi là CompareByValue
public class CompareByValue implements Comparator<Stock> {
@Override
public int compare(Stock stock1, Stock stock2) {
return (stock1.getInventoryValue() - stock2.getInventoryValue());
}
}
Khi tôi cố gắng chạy chương trình, nó cho lỗi:
Exception in thread "main" java.lang.ClassCastException: Stock cannot be cast to java.lang.Comparable
Bất cứ ai biết điều gì sai?
Làm thế nào để bạn chạy chương trình, đặc biệt là nơi bạn sắp xếp danh sách? –