我正在阅读AngelikaLangerDoc。差不多三天之后,我正在读它。
在我之前的课程中,我了解到,允许创建unbounded wild card
的数组。
我还研究了无界的通配符参数化类型,称为Reifiable types
。当我搜索
可再生类型的定义,它声明了一种类型信息在运行时已知的类型
被称为reifiable type
。从文章中挑选代码片段。
Pair<?,?>[] iniPair = new Pair<?,?>[10];
我心中有以下困惑。
我知道这是一个基本问题。我只想回到复习,重新开始 仿制药跟踪。任何人都可以详细说明这个问题吗?
答案 0 :(得分:4)
从该网站:
Java中的可再生类型只是那些不需要具体化的类型,即不需要任何类型参数的运行时表示的类型
通配符参数中没有类型信息,因此擦除不会丢失任何内容。
答案 1 :(得分:2)
由于Java编译器将所有无界类型参数替换为Object
根据{{3}}
的可改变术语为了实现泛型,Java编译器将类型擦除应用于:
1.如果类型参数是无界的,则用泛型或对象替换泛型类型中的所有类型参数。生成的字节码, 因此,只包含普通的类,接口和方法。
2.如有必要,插入类型转换以保持类型安全。
3.生成桥接方法以保留扩展泛型类型中的多态性。
可再现类型是一种类型,其类型信息在运行时完全可用。这包括基元,非泛型类型,原始类型和未绑定通配符的调用。