Java泛型:列表,列表<对象>,列表<?>

Java泛型:列表,列表<对象>,列表<?>

有人能尽可能详细地解释以下类型之间的区别吗?


List

List<Object>

List<?>

让我说得更具体些。我什么时候想用


// 1 

public void CanYouGiveMeAnAnswer(List l) { }


// 2

public void CanYouGiveMeAnAnswer(List<Object> l) { }


// 3

public void CanYouGiveMeAnAnswer(List<?> l) { }


潇潇雨雨
浏览 345回答 3
3回答

神不在的星期二

用我自己简单的话说:列单将声明一个普通集合,可以保存任何类型,并将始终返回对象。列表<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();&nbsp;List <?> l2 = new ArrayList<String>();这将被称为未知数既然共同的分母未知数是您将能够获取对象的对象(巧合)。.的重要性未知数当它与子类一起使用时:List<? extends Collection> l = new ArrayList<TreeSet>(); // compilesList<? extends Collection> l = new ArrayList<String>(); // doesn't,// because String is not part of *Collection* inheritance tree.&nbsp;我希望使用集合作为类型不会造成混乱,这是我唯一想到的树。这里的区别是,我是不知道属于收藏等级制度。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java