对类及方法的泛型

来源:互联网 发布:mac菜单栏 编辑:程序博客网 时间:2024/04/30 09:46
3.泛型的应用
可以对类或方法进行泛型


泛型定义在类中,整个类有效
         例1:class Demo<QQ>{
 
private QQ q;


public void setq( QQ q ){
  this.q = q;
}


public QQ getq(){
  return q;
}
}


例2;为了让不同的方法使用不同的类型,将泛型定在方法上
2.1 class demo{
   public <Q> void show( Q q ){}
}


2.2 class demo{//可以是任意类型
    public <Q> void show( Q q ){}
    public <T> void show( T t ){}
}


 2.3 class demo<Q>{
    public <Q> void show( Q q ){}//随类的类型走
    public <T> void show( T t ){}//可以是任意类型
}
    静态泛型(先加载)
2.4  class demo{
    public static <Q> void show( Q q ){}
}






    3.1 泛型的高级应用:
(1)?: 通配符,也可以理解为占位符
(2)? extends A(泛型的限定:向上限定):可以接受A或A的子类 
(3)? super A(泛型的限定:向下限定):可以接受A或A的父类 
例1:public void print(<? extends A> a){
Iterator<? extends A> it = a.Iterator();
while( it.hasNext ){
    print( it.next );
 }
}
例2(比较器:implements Comparator<A>);
0 0