繁体   English   中英

ArrayList <?>,ArrayList,ArrayList <Object>有什么区别?

[英]What is the difference between ArrayList<?>, ArrayList, ArrayList<Object>?

有人可以解释一下ArrayList<?>ArrayListArrayList<Object>之间的区别是什么,以及何时使用它们? 它们是相同的还是在实施层面上都有不同的含义?

ArrayList<Object> 特别Object的列表,而ArrayList<?>是一个我们不确定的具体类型的列表(意味着我们不能向列表添加除null之外的任何内容)。 当列表的类型不相关时,您将使用后者,例如,当您要执行的操作不依赖于列表的类型时。 例如:

public static boolean isBigEnough(ArrayList<?> list) {
    return list.size() > 42;
}

这些都在泛型教程中有所介绍(参见通配符部分)。

最后,没有类型参数的ArrayList原始类型 :它甚至被允许的唯一原因是向后兼容5以下的Java版本,并且您应该尽可能避免使用它。

ArrayList<?>表示“包含要确定的类型的ArrayList实例”

ArrayList是一个类的ArrayList

ArrayList<Object>表示包含Object类型的ArrayList的实例。

看起来这可能是一个很好的写作(以及更多): http//docs.oracle.com/javase/tutorial/java/generics/types.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM