gpt4 book ai didi

java - 使用 Comparable 接口(interface)时类强制转换异常

转载 作者:行者123 更新时间:2023-11-30 04:00:16 24 4
gpt4 key购买 nike

当我尝试执行下面的代码时,编译器在第 13 行抛出错误“java.lang.ClassCastException”。有人可以让我知道下面的代码有什么问题吗?

package chapter11;

import java.util.*;

public class ComparableExample {

public static void main(String[] args) {
// TODO Auto-generated method stub
Item[] items = new Item[3];
items[0] = new Item(102, "Duct Tape");
items[1] = new Item(103, "Bailing Wire");
items[2] = new Item(104, "Chewing Gum");

Arrays.sort(items);
for (Item i : items) {
System.out.println(i.getNumber() + ":" + i.getDescription());
}
}
}

interface Comparable {
int compareTo(Object o);
}

class Item implements Comparable {
private int number;
private String description;

public Item(int number, String description) {
this.number = number;
this.description = description;
}

public int getNumber() {
return number;
}

public String getDescription() {
return description;
}

public int compareTo(Object o) {
Item i = (Item) o;
if (this.getNumber() < i.getNumber())
return -1;
if (this.getNumber() < i.getNumber())
return 1;
return 0;
}
}

感谢任何帮助,谢谢!!

最佳答案

删除您的 Comparable 接口(interface),并使用 Comparable interface from the Java api.而且,也许你可以改变

public int compareTo(Object o) {
Item i = (Item) o;
if (this.getNumber() < i.getNumber())
return -1;
if (this.getNumber() < i.getNumber())
return 1;
return 0;
}

进入:

public int compareTo(Object o) {
Item i = (Item) o;
if (this.getNumber() < i.getNumber())
return -1;
if (this.getNumber() > i.getNumber())
return 1;
return 0;
}

关于java - 使用 Comparable 接口(interface)时类强制转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22154734/

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