emo*_*nas 10 java generics polymorphism inheritance
在泛型
class A<T extends Number> 被允许
但
class A<T super Integer> 不被允许
我没有明白这一点.这可能听起来像新手问题,但我陷入其中
类定义中不允许超级绑定.
Run Code Online (Sandbox Code Playgroud)//this code does not compile ! class Forbidden<X super Vehicle> { }为什么?因为这种结构没有意义.例如,您无法使用Vehicle删除类型参数,因为可以使用Object实例化Forbidden类.因此,您必须将类型参数擦除到Object.如果考虑禁用类,它可以取代X的任何值,而不仅仅是超级类的Vehicle.使用超级绑定毫无意义,它不会给我们任何东西.因此不允许这样做.
| 归档时间: |
|
| 查看次数: |
1593 次 |
| 最近记录: |