自定义泛型
class 类名<T,R>{}
- 普通成员可以使用泛型
- 使用泛型的数组,不能进行初始化
- 静态方法中不能使用类的泛型
- 泛型类的类型,是在创建对象时确定的(因为在创建对象时,需要指定确定类型)
- 如果在创建对象时,没有指定类型则默认为Object
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class Test { public static void main(String[] args) {
} } class Tiger<T,M,R>{ T[] ts;
}
|
自定义泛型方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public class Test { public static void main(String[] args) { Tiger tiger=new Tiger(); tiger.fly("haha",1); tiger.fly(1,1); } } class Tiger<K>{ public void run(){
} public <T,R> void fly(T t,R r){
} public void f2(K k){ }
}
|
注意泛型不具备继承性,下面的这一段语句就是错误的。
1
| ArrayList<Object> arrayList=new ArrayList<String>();
|
: 支持A类以及A的子类,规定了泛型的上线
: 支持A类以及A的父类,规定了泛型的下线