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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gerenvip 中级黑马   /  2013-4-14 10:13  /  1626 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在毕老师的视频中,演示的示例和我实际运行时,运行结果不一样,不知道哪里出问题了。大家帮忙看一看。

按照视频中说的,当只添加一个元素,即执行 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. }
复制代码

2 个回复

倒序浏览
这个跟jDk的版本有关,6版本中允许存储一个,而7版本不允许存储。
回复 使用道具 举报
HM何伟 发表于 2013-4-14 10:18
这个跟jDk的版本有关,6版本中允许存储一个,而7版本不允许存储。

原来这样啊。我用的jdk1.7的。谢啦!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马