<? extends T>是T的某种子类,能放入子类的容器不一定放入父类(超类),也就是没可能放入T。
.<? super T>这里比较容易使用,,这里的意思是,以T类为下限的某种类,简单地说就是T类的父类。
/**
* @Author 菠萝哥
**/
public class Main {
public static void main(String[] args) {
lqr<Integer> ti = new lqr<Integer>();
Info<String> i1 = new Info<String>();
Info<Object> i2 = new Info<Object>();
i1.setVar("hello") ;
i2.setVar(new Object()) ;
fun(i1) ;
fun(i2) ;
}
//上限,只能接收超类,就是自己和自己的父类
public static void fun(Info<? super String> temp){
System.out.print(temp + ", ") ;
}
}
//下限,就类似与只接收子类的意思
class lqr <T extends Number>{
private T var;
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
public String toString(){
return this.var.toString() ;
}
}
public class Info<T>{
private T var ;
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
public String toString(){
return this.var.toString() ;
}
}