3 回答

TA贡献1963条经验 获得超6个赞
用我自己简单的话说:
列单
将声明一个普通集合,可以保存任何类型,并将始终返回对象。
列表<Object>
将创建一个列表,该列表可以容纳任何类型的对象,但只能分配另一个对象。列表<Object>
例如,这是行不通的;
List<Object> l = new ArrayList<String>();
当然,您可以添加任何东西,但只能拉动对象。
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>();
这将被称为未知数既然共同的分母未知数是您将能够获取对象的对象(巧合)。
.的重要性未知数当它与子类一起使用时:
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.
我希望使用集合作为类型不会造成混乱,这是我唯一想到的树。
这里的区别是,我是不知道属于收藏等级制度。
添加回答
举报