黑马程序员技术交流社区

标题: 小问题,大家帮忙看一下 [打印本页]

作者: gerenvip    时间: 2013-4-14 10:13
标题: 小问题,大家帮忙看一下
在毕老师的视频中,演示的示例和我实际运行时,运行结果不一样,不知道哪里出问题了。大家帮忙看一看。

按照视频中说的,当只添加一个元素,即执行 ts.add(new Student("lisi03",22));这一句时虚拟机是不会报错的,可以存入内存
,仅当增添多个元素的时候,由于牵扯到Comparable接口的问题。所以会报ClassCastException: Student cannot be cast to java.lang.Comparable异常。
但是,我在演示的时候,也只添加一个元素,但是虚拟机还是会报 类型转换异常
虚心请教,是怎么回事?谢谢!
  1. import java.util.*;
  2. class  TreeSetDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 TreeSet ts = new TreeSet();

  7.                 ts.add(new Student("lisi03",22));
  8.                
  9.                 //ts.add(new Student("lisi02",20));
  10.                 //ts.add(new Student("lisi09",19));
  11.                 //ts.add(new Student("lisi01",30));

  12.                 Iterator it= ts.iterator();
  13.                 while(it.hasNext())
  14.                 {
  15.                         Student p = (Student)it.next();
  16.                         sop(p.getName()+"..."+p.getAge());
  17.                 }
  18.         }
  19.         public static void sop(Object obj)
  20.         {
  21.                 System.out.println(obj);
  22.         }
  23. }

  24. class Student
  25. {
  26.         private String name;
  27.         private int age;
  28.         Student(String name,int age)
  29.         {
  30.                 this.name=name;
  31.                 this.age=age;
  32.         }
  33.         public String getName()
  34.         {
  35.                 return name;
  36.         }
  37.         public int getAge()
  38.         {
  39.                 return age;
  40.         }
  41. }
复制代码

作者: HM何伟    时间: 2013-4-14 10:18
这个跟jDk的版本有关,6版本中允许存储一个,而7版本不允许存储。
作者: gerenvip    时间: 2013-4-14 12:02
HM何伟 发表于 2013-4-14 10:18
这个跟jDk的版本有关,6版本中允许存储一个,而7版本不允许存储。

原来这样啊。我用的jdk1.7的。谢啦!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2