Java编译器如何为较低边界的通配符执行类型擦除?
在使用generics类型编译源代码时,Java编译器会自动执行类型擦除,用适当的原始类型替换generics声明。
根据Oracle文档,这个擦除取代了上面的绑定通配符 使用T
。这非常适合动态多态。
但是对于有界较小的通配符如何执行此擦除
看到每个类都有一个共同的超类(Object),使用它会破坏整个目的吗?
对于超类型,它将擦除为对象类型。 仅用于编译时validation
在使用generics类型编译源代码时,Java编译器会自动执行类型擦除,用适当的原始类型替换generics声明。
根据Oracle文档,这个擦除取代了上面的绑定通配符 使用T
。这非常适合动态多态。
但是对于有界较小的通配符如何执行此擦除
看到每个类都有一个共同的超类(Object),使用它会破坏整个目的吗?
对于超类型,它将擦除为对象类型。 仅用于编译时validation