![](/img/trans.png)
[英]Difference between ArrayList<>() and ArrayList<>(){}
[英]What is the difference between ArrayList<?>, ArrayList, ArrayList<Object>?
有人可以解释一下ArrayList<?>
, ArrayList
和ArrayList<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.