也许有点误导性的标题,但不知道如何说出来。
在ArrayList的示例中,这两个列表对象之间有什么区别:
ArrayList list = new ArrayList<Integer>();
和
ArrayList<Integer> list = new ArrayList();
注意:我知道列表层次结构,接口和继承,但我不确定它在这种情况下是如何应用的。有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
ArrayList list = new ArrayList<Integer>();
将发出有关使用原始ArrayList对象的警告,因为您没有指定列表是通用ArrayList类型。
ArrayList<Integer> list = new ArrayList();
将提供未经检查的转换警告,因为您要将非泛型ArrayList分配给类型化ArrayList
ArrayList<Integer> list = new ArrayList<>();
将在java7 +中运行。菱形运算符告诉编译器推断泛型类型。
List<Integer> list = new ArrayList<Integer>();
是使用ArrayList的标准方法,即使它比新的java7语法更长。