java - 为什么我们称无界通配符参数化类型为可具体化的?

标签 java generics

我正在通读 AngelikaLangerDoc .我在将近三天的间隔后阅读它。 在我之前的类(class)中,我了解到,允许创建 unbounded wild card 数组。 我还研究了无限通配符参数化类型,称为 Reifiable types。当我搜索 可具体化类型的定义,它指出,类型信息在运行时已知的类型 称为具体化类型。从文章中选择一个代码片段。

Pair<?,?>[] iniPair = new Pair<?,?>[10];

我有以下困惑。

  1. 为什么我们说无界通配符参数化类型称为可具体化?
  2. 在上面的例子中,类型信息是如何知道的?

我知道这是一个基本问题。我只是想恢复精神以重新开始 泛型的轨迹。任何人都可以详细说明这个问题吗?

最佳答案

来自该网站:

the reifiable types in Java are only those types for which reification does not make a difference, that is, the types that do not need any runtime representation of type arguments

通配符参数中没有类型信息,因此删除不会丢失任何内容。

关于java - 为什么我们称无界通配符参数化类型为可具体化的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18411440/

相关文章:

c# - 默认(T)与 Activator.CreateInstance(T)

vb.net - 如何在 VB.NET 中创建通用属性?

java - 如何将RecyclerView添加到LinearLayout(高度问题)

java - 根据搜索字段将条目从 MySQL 加载到 Java 表中

ios - Swift 2.0 beta 词典扩展

java - 有没有办法将泛型参数限制为数组?

java - JPA中是否有查询类的参数化版本?

java - 将 Web 应用程序和 native 应用程序指向同一数据库/后端?

来自扩展的 Java 类型转换

java - 程序运行时创建对象