List 和List 的區別


是java泛型的兩種用法:List<T>是泛型方法,List<?>是限制通配符

List<T>一般有兩種用途:
1、定義一個通用的泛型方法。
偽代碼:
public interface Dao{ List<T> getList(){}; } List<String> getStringList(){ return dao.getList();//dao是一個實現類實例 } List<Integer> getIntList(){ return dao.getList(); } 
上面接口的getList方法如果定義成List<?> ,后面就會報錯。‘

2、限制方法的參數之間或參數和返回結果之間的關系。
List<T> getList<T param1,T param2>
這樣可以限制返回結果的類型以及兩個參數的類型一致。

List<?>一般就是在泛型起一個限制作用。
偽代碼:
public Class Fruit(){}

public Class Apple extends Fruit(){}

public void test(? extends Fruit){};

test(new Fruit());
test(new Apple());
test(new String()); //這個就會報錯
這樣可以現在test方法的參數必須是Fruit或其子類。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。