java基础问题,求各位大神帮忙解答,感激不尽!
巴扎黑
巴扎黑 2017-04-17 17:27:08
0
3
756

程序运行返回Exception in thread "main" java.lang.ClassCastException: Item cannot be cast to java.lang.Comparable.
求各位大哥大叔帮看看哪里出了问题。。。。
public class LinkListTest {

public static void main(String[] args) {
    SortedSet<Item> oo = new TreeSet<>();
    oo.add(new Item("afang", 1011));
    oo.add(new Item("fangjie", 1222));
    oo.add(new Item("fangfang", 889));
    System.out.println(oo);
    
    SortedSet<Item> sortedByDes = new TreeSet<>(new 
            Comparator<Item>() {
            public int compare(Item a, Item b) {
            String desA = a.getDescription();
            String desB = b.getDescription();
            return desA.compareTo(desB);
            }
    });
    sortedByDes.addAll(oo);
    System.out.println(sortedByDes);
    
}


}
class Item  {
    private String description;
    private int id;
    public Item(String aDes, int aId) {
        description = aDes;
        id = aId;
    }
    
    public String getDescription() {
        return description;
    }

}

巴扎黑
巴扎黑

全員に返信(3)
伊谢尔伦

アイテムに Comparable インターフェイスを直接実装させます

いいねを押す +0
阿神

リーリー

いいねを押す +0
PHPzhong

この例外は型変換例外です
SortedSet<Item>sortedByDes = new TreeSet<>(new Comparator<Item>() {…}
多態性は親クラス オブジェクトに変換されたサブクラス オブジェクトである必要があります、新しい Comparator<Item> は Comparable のサブクラスであり、作成したクラス Item {...} は Comparable のサブクラスではないため、型変換エラーが発生します。解決策は、Item に Comparable インターフェイス 。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!