Java数组和ArrayList声明中的冗余措辞

Java中的典型ArrayList声明具有以下类型:

ArrayList<Object> name = new ArrayList<Object>();

同样,对于数组,我们有:

Object[] name = new Object[size];

现在,我们当然不能声明以下类型:

ArrayList<Object> name = new ArrayList<AnotherObject>();

两次指定同一对象的类型和名称对我来说似乎总是多余的.上述声明中的冗余可以通过以下方式轻松完成:

ArrayList<Object> name = new();

是否有任何特定的原因,我错过了为什么它按照它的方式完成?

解决方法

事实并非如此.至少,不再是.现在你可以这样做:

ArrayList<Object> name = new ArrayList<>();

你不能放弃第二个ArrayList,因为它不一定要匹配第一个.例如,您可以这样做:

List<Object> name = new ArrayList<>();

你会得到一个ArrayList但是把它看成一个List.

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...