我们都知道关于java中范型的使用比较蛋疼,下面就说下我们常用的两种声明方式:
public <T extends Animal> void takeThing(ArrayList<T> list)
上面这种方式相同的声明为:
public void takeThing(ArrayList<? extends Animal> list)
既然上面的方式都一样,为什么还有问号那一个呢
这是因为当有两个参数时,只声明一次会比较高效
public <T extends Animal> void takeThing(ArrayList<T> one, ArrayList<T> two)
而不必:
public void takeThing(ArrayList<? extends Animal> one, ArrayList<? extends Animal> two)