gpt4 book ai didi

java - MyClass 无法转换为 java.lang.Comparable : java. lang.ClassCastException

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:11 26 4
gpt4 key购买 nike

我正在做一个 java 项目,我遇到了这个问题,不知道如何解决。

我项目中的类(简化):

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;

}
}

然后我尝试对 Stock 的 ArrayList 进行排序,因此我创建了另一个名为 CompareByValue 的类

public class CompareByValue implements Comparator<Stock> {

@Override
public int compare(Stock stock1, Stock stock2) {

return (stock1.getInventoryValue() - stock2.getInventoryValue());

}

当我尝试运行该程序时,出现错误:

Exception in thread "main" java.lang.ClassCastException: Stock cannot be cast to java.lang.Comparable

谁知道怎么回事?

最佳答案

这是因为 Stock 没有实现 Comparable。要么实现它:

public class Stock implements Comparable<Stock> {
public int compareTo(Stock o) {
// ...
}
}

... 或者将 CompareByValue 的实例作为参数传递给 sort()方法:

Collections.sort(list, new CompareByValue());

关于java - MyClass 无法转换为 java.lang.Comparable : java. lang.ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19716790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com