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

程序运行返回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 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 sortedByDes = new TreeSet<>(new Comparator() { 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)
伊谢尔伦

直接让item实现Comparable接口

    阿神
    class Item implements Comparable { private String description; private int id; public Item(String aDes, int aId) { description = aDes; id = aId; } public String getDescription() { return description; } public int compareTo(Item o) { //dosomething....... } }
      PHPzhong

      这个异常是类型转换异常
      SortedSet sortedByDes = new TreeSet<>(new Comparator() {…}
      多态必须是子类对象转换为父类对象,new Comparator是Comparable的子类,而你写的class Item {…}并不是Comparable的子类,所以会出现类型转换错误。解决办法就是让你的Item 实现Comparable接口

        최신 다운로드
        더>
        웹 효과
        웹사이트 소스 코드
        웹사이트 자료
        프론트엔드 템플릿
        회사 소개 부인 성명 Sitemap
        PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!