java - List<integer> c1=new Arraylist<integer>c1 是什么类型的对象

标签 java

在java集合中

List<Integer>  c1=new Arraylist<Integer> 

这里,c1是一个List类型的对象,它是一个接口(interface),我们不能创建该接口(interface)的对象吗?

有人可以向我解释一下吗?

最佳答案

变量的类型c1List<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/

相关文章:

java - Maven+Eclipse编译失败,终端上的Maven编译正常

java - (Java) 如何使用 Selenium 验证外部链接重定向?

java - 如何在字符串中使用模式replaceAll

java - SSLEngine 握手卡在第二个循环

java - 如何使用 "interface"作为输入参数?

java - 如何在 java 中将给定字符串的 UTF-8 编码字节的 MD5 哈希的前 8 个字节表示为 long?

java - 为什么java streams跳过方法强制执行其他操作

java - 如何使用 Object 类型的数组访问 java 中不同类的方法

java - 长时间 session 中连接重置

java.lang.IllegalStateException : Not a JSON Object 错误