3 回答

TA貢獻1963條經(jīng)驗 獲得超6個贊
用我自己簡單的話說:
列單
將聲明一個普通集合,可以保存任何類型,并將始終返回對象。
列表<Object>
將創(chuàng)建一個列表,該列表可以容納任何類型的對象,但只能分配另一個對象。列表<Object>
例如,這是行不通的;
List<Object> l = new ArrayList<String>();
當(dāng)然,您可以添加任何東西,但只能拉動對象。
List<Object> l = new ArrayList<Object>();
l.add( new Employee() );
l.add( new String() );
Object o = l.get( 0 );
Object o2 = l.get( 1 );
最后
列表<?>
將允許您分配任何類型,包括
List <?> l = new ArrayList();
List <?> l2 = new ArrayList<String>();
這將被稱為未知數(shù)既然共同的分母未知數(shù)是您將能夠獲取對象的對象(巧合)。
.的重要性未知數(shù)當(dāng)它與子類一起使用時:
List<? extends Collection> l = new ArrayList<TreeSet>(); // compiles
List<? extends Collection> l = new ArrayList<String>(); // doesn't,
// because String is not part of *Collection* inheritance tree.
我希望使用集合作為類型不會造成混亂,這是我唯一想到的樹。
這里的區(qū)別是,我是不知道屬于收藏等級制度。
添加回答
舉報