首页 > 代码库 > 黑马程序员-学习日记(泛型限定)

黑马程序员-学习日记(泛型限定)

泛型限定通配符<?>,也可以理解为占位符号? extends E:可以接受E类型或者E的子类型 上限 <? extends E>? super E:可以接受E或E的父类型 下限  <? super E>上限什么时候用:往集合中添加元素时,既可以添加E类型对象,又可以添加E的子类型对象。为什么?因为取的时候,                E类型既可以接收E类对象,又可以接收E的子类型对象。?下限什么时候用:当从集合中获取元素进行操作的时候,可以用当前元素的类型接收,也可以用当前元素的父类型接收。

import java.util.*;class Gd12 {    public static void main(String[] args)     {        TreeSet<Worker> ts = new TreeSet<Worker>(new comp());        ts.add(new Worker("a"));        ts.add(new Worker("b"));        ts.add(new Worker("c"));                                TreeSet<Student> ts1 = new TreeSet<Student>(new comp());        ts1.add(new Student("e"));        ts1.add(new Student("d"));        ts1.add(new Student("f"));        Iterator<Worker> it = ts.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;    }}class Student extends Person{    Student(String name)    {        super(name);    }}class Worker extends Person{    Worker(String name)    {        super(name);    }}class comp implements Comparator<Person>{    public int compare(Person p1,Person p2)    {        return p2.getName().compareTo(p1.getName());    }}

 

黑马程序员-学习日记(泛型限定)