在java集合中
List<Integer> c1=new Arraylist<Integer>
这里,c1是一个List类型的对象,它是一个接口(interface),我们不能创建该接口(interface)的对象吗?
有人可以向我解释一下吗?
最佳答案
变量的类型c1
是 List<Integer>
。这仅仅意味着 c1
的值任何时候都必须是 null
,或对其类型实现 List
的对象的引用.
但是,c1
的值所对应的对象的类型执行时指的是ArrayList
。 (它不知道由于类型删除,它被构造为 ArrayList<Integer>
。)
区分三个概念非常重要:
- 变量(例如
c1
)。变量在编译时就有类型。 - 引用文献(例如
c1
的值) - 对象(例如
c1
值所引用的对象)。对象在执行时具有类型(在此之前它不存在)。
如果您能牢记这三点,那么很多事情(例如参数传递、赋值等)都会变得更加简单。
关于java - List<integer> c1=new Arraylist<integer>c1 是什么类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22488307/