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 次 |
最近记录: |