
中的有界通配符
List<? super Number>可以捕获Number及其任何超类型。由于
Number extends Object implements Serializable,这意味着当前唯一可被捕获转换的类型
List<? super Number>是:
- List
- List
- List
请注意,你可以
add(Integer.valueOf(0))使用上述任何一种。但是,你不能
add(new Object())使用
List<Number>或
List<Serializable>,因为这违反了通用类型安全规则。
因此,它是不是真的,你可以
add任意超
Number到
List<? super Number>; 根本不是有限的通配符和捕获转换如何工作。你不声明
a是
List<? super Number>因为你可能想向其中添加一个Object(你不能!);之所以这样做,是因为你要向其中添加Number对象(即,它是的“消费者” Number),而仅仅是
a List<Number>的限制太大。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)