可以用extends来约束等于某个类及其子类,或者用super来约束等于某个类及其父类
package com.fanxing;
public class Abc<T> { //定义泛型类
private T x;
public T getX() {
return null;
}
public void setX(T x) {
}
}
public class Ey {
//public Abc<? > cf(Abc <? extends Yzr> k){ 可以extends亚洲人,赋值的类型必须是亚洲人或者其子类
public Abc<? > cf(Abc <? super Zgr> k){ //也可以super中国人,赋值的类型必须是中国人或者其父类
return null;
};
}
public class Test {
public static void main(String[] args) {
Ey ey=new Ey();
ey.cf(new Abc<Zgr>());
}
}
注意:
1)一般定义的泛型类型首次使用的时候如果还是不确定用什么类型,可以用通配符?代替,但是再次调用的时候必须赋具体的类型了 也就是说通配符?只能用一次。
2)(这时候如果不用?来表示不确定类型 如果还是用之前定义的T 那么这里会被当做一个实体类T类型处理,会要求创建class T的类)。
3)通配符?在泛型定义时不能使用,只能用在泛型使用的时候用。
//定义泛型的时候也可以用extends约束 如下:
//但定义泛型时不能用super约束
public class Abc<T extends Zgr> { //可以同时写多个类型变量
private T x; //使用时不用区分顺序
public T getX() {
return null;
}
public void setX(T x) {
}
}