在使用泛型类型编译源代码时,Java 编译器会自动执行类型删除,将泛型声明替换为合适的原始类型。
根据 Oracle 文档,此删除替换了上方绑定(bind)的通配符 <? extends T>
与 T。这非常适合动态多态性。
但是对于下界通配符 <? super T>
是如何进行删除的?看到每个类都有一个共同的父类(super class)(对象),使用它会破坏整个目的吗?
最佳答案
对于父类(super class)型,它删除为对象类型。 <?super T>
仅用于编译时校验
关于java - Java 编译器如何对下界通配符执行类型删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25480172/