8、泛型特性

来源:互联网 发布:淘宝买dnf账号 编辑:程序博客网 时间:2024/05/16 04:55
?通配符,也可以理解为占位符
泛型的限定:
? extends E: 可以接收E类型或者E类型的子型;上限。

? super E: 可以接收E类型或者E类型的父类型;下限。


调用多类型元素泛型例子

package GenericPakage; public class GenericDemo2 {     public static void main(String[] args)     {        Demo demo = new Demo();        demo.show("胡平燕");        demo.show(55232);    }} class Demo{       public <Q> void show(String s)    {               System.out.println(s);    }    public <Q> void show(int s)    {               System.out.println(s);    }}

接口泛型例子

package GenericPakage; public class GenericDemo2 {     public static void main(String[] args)     {        Demo demo = new Demo();        demo.show("胡平燕");    }} interface Inter<T>{    public abstract void show(T t);} class Demo implements Inter<String>{    public void show(String s)    {        System.out.println(s);    }   }


泛型限定例子
//泛型限定例子package GenericPakage;import java.util.Comparator;import java.util.Iterator;import java.util.TreeSet; public class GenericDemo4 {     public static void main(String[] args)     {        TreeSet<Worker> p = new TreeSet<Worker>(new Comp()/*比较器*/);        p.add(new Worker("4"));        p.add(new Worker("2"));        p.add(new Worker("8"));         TreeSet<Student2> s = new TreeSet<Student2>(new Comp()/*比较器*/);        s.add(new Student2("6--"));        s.add(new Student2("3--"));        s.add(new Student2("7--"));             printColl(p);        printColl(s);    }    public static void printColl(TreeSet<? extends Person2> al)    {               for(Iterator<? extends Person2> it = al.iterator(); it.hasNext();)        {            System.out.println(it.next().getName());        }    }} class Comp implements Comparator<Person2>{    @Override    public int compare(Person2 p1, Person2 p2) {        return p1.getName().compareTo(p2.getName());    }   } class Person2{    private String name;     Person2(String name)    {        this.name = name;    }     public String getName()    {        return name;    }} class Student2 extends Person2{    Student2(String name)     {        super(name);    }} class Worker extends Person2{    Worker(String name)     {        super(name);    }}


静态泛型例子
package GenericPakage; public class GenericDemo2 {     public static void main(String[] args)     {        Demo demo = new Demo();        demo.show("胡平燕");        Demo.show(55);    }} class Demo{    public void show(String s)    {        System.out.println(s);    }    public static <Q> void show(int s)    {               System.out.println(s);    }}


0 0