A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 钟成军 高级黑马   /  2014-3-30 22:00  /  1102 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 钟成军 于 2014-3-31 17:21 编辑

毕老师十五天视频,为什么我存一个Student对象还是报错:
Exception in thread "main" java.lang.ClassCastException: Student cannot be cast
to java.lang.Comparable
但毕老师那里却能运行出结果?
  1. class  TreeSetDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 TreeSet ts = new TreeSet();

  6.                 ts.add(new Student("lisi02",22));//我只存了这一个对象,但运行时还是报上面那个错误,求解??
  7.   
  8.          Iterator it = ts.iterator();
  9.                 while(it.hasNext())
  10.                 {
  11.                         System.out.println(it.next());
  12.                 }
  13.         }
  14. }


  15. class Student
  16. {
  17.         private String name;
  18.         private int age;

  19.         Student(String name,int age)
  20.         {
  21.                 this.name = name;
  22.                 this.age = age;
  23.                
  24.         }

  25.         public String getName()
  26.         {
  27.                 return name;
  28.         }
  29.         public int getAge()
  30.         {
  31.                 return age;
  32.         }
  33. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
itpower + 1

查看全部评分

10 个回复

倒序浏览
我复制你的代码,我的电脑可以出来结果。你仔细检查下吧。
回复 使用道具 举报
哥们,treeset集合使用元素的自然顺序对元素进行排序,而你里面放的是对象它不知道怎么排,到底是按姓名排,还是按年龄排,这就需要你指定了,所以你要使用这个集合的话,就要实现Comparator 接口
回复 使用道具 举报
╰つ 发表于 2014-3-30 22:39
哥们,treeset集合使用元素的自然顺序对元素进行排序,而你里面放的是对象它不知道怎么排,到底是按姓名排 ...

恩,但是存一个对象的时候毕老师演示的时候也没有问题,可以打印一个地址值出来,但我的电脑一直运行不出,还是报那个错,也许是我电脑问题吧,我检查了代码没哪里有问题
回复 使用道具 举报
我跟你一样抛出异常,Exception in thread "main" java.lang.ClassCastException: Student cannot be cast to java.lang.Comparable看了半天代码没问题,如果你有答案的话麻烦告诉我一声哈,谢啦

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报 0 1
兄弟 看到你的一场信息 是类型转换异常 你可以给treeset加上泛型Student 告诉treeset我里面装的是Student类型的数据这样子就不会报错了
回复 使用道具 举报
lazy_xia 发表于 2014-3-31 14:19
兄弟 看到你的一场信息 是类型转换异常 你可以给treeset加上泛型Student 告诉treeset我里面装的是Student类 ...

我知道,但泛型是后面的,这个问题可能不是代码问题吧,上面不是有一个哥们也出现这个问题,有的没有出现。
回复 使用道具 举报
钟成军 发表于 2014-3-31 14:51
我知道,但泛型是后面的,这个问题可能不是代码问题吧,上面不是有一个哥们也出现这个问题,有的没有出现 ...

哦 这样子啊 可是异常信息上市类型问题  你看到后面你就知道这是什么原因导致的了
回复 使用道具 举报
lazy_xia 发表于 2014-3-31 15:23
哦 这样子啊 可是异常信息上市类型问题  你看到后面你就知道这是什么原因导致的了  ...

好勒:handshake
回复 使用道具 举报
楼主用的jdk是什么版本的呢。我感觉跟jdk版本有关系。
回复 使用道具 举报
leon_hm 发表于 2014-3-31 18:52
楼主用的jdk是什么版本的呢。我感觉跟jdk版本有关系。

JDK1.6.0的版本啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马