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

本帖最后由 淡淡柠檬茶 于 2014-6-5 14:48 编辑

import java.util.*;
class fanxing1
{
        public static void main(String[] args)
        {
                TreeSet<Student> s = new TreeSet<Student>(new Comp());
                s.add(new Person("01"));
                s.add(new Person("02"));
                s.add(new Person("03"));
                s.add(new Person("04"));
               
                Iterator it = s.iterator();
                while (it.hasNext())
                {
                                System.out.println(it.next().getName());
                }
        }
}
class Person
{
        private String name;
        Person(String name)
        {
                this.name = name;
        }
        public String getName()
        {
                return name;
        }
        public String toString()
        {
                return "person:"+name;
        }
}

class Student extends Person
{
        Student(String name)
        {
                super(name);
        }
}
class Comp implements Comparator<Student>
{
        public int compare(Student s1,Student s2)
        {
                return s1.getName().compareTo(s2.getName());
        }
}

5 个回复

倒序浏览
哦。。。
回复 使用道具 举报
我提示的问题提示。。。。。

方法 TreeSet.add(Student)不适用
  (无法通过方法调用转换将实际参数Person转换为Student)
方法 AbstractCollection.add(Student)不适用
  (无法通过方法调用转换将实际参数Person转换为Student)
ing1.java:10: 错误: 对于add(Person), 找不到合适的方法
            s.add(new Person("04"));
             ^
方法 TreeSet.add(Student)不适用
  (无法通过方法调用转换将实际参数Person转换为Student)
方法 AbstractCollection.add(Student)不适用
  (无法通过方法调用转换将实际参数Person转换为Student)
ing1.java:15: 错误: 找不到符号
                            System.out.println(it.next().getName());
                                                        ^
号:   方法 getName()
置: 类 Object
回复 使用道具 举报
泛型定义了<Student>,就不能往里面加Person了
回复 使用道具 举报
我找到原因了呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马