泛型
定义类型参数
//类
public class Demo<T>{
public <T> void show1(T param){} //使用类的泛型
public <R> void show2(R param) //自己额外定义不同的
public <T extends Animal> void show3(T param) //自己额外定义不同的
}
//接口 (和类同理)
public interface Eat<T>{}
//方法
public <T> void method(T param){}
//使用
Demo<String> demo1 = new Demo<String>();
Demo demo2 = new Demo<String>();
Demo<String> demo3 = new Demo<>(); //推荐这个
类型限定
//类型参数 写法
public <T extends Animal> void method (Demo<T> param){}
//通配符 写法
public void method (Demo<? extends Animal> param){}
通配符
? | 无限定通配符 |
? extends T | 上限定通配符 |
? super T | 下限定通配符 |