
在第一个示例中,
Arrays.asList()调用的推断类型为
List<Class<? extends A>>,显然可以将其分配给相同类型的变量。
在第二个示例中,右侧的类型为
List<Class<B>>。虽然
Class<B>是 分配给
Class<? extendsA>,
List<Class<B>>不 分配给
List<Class<? extends A>>。它可以分配给
List<? extendsClass<? extends A>>。
其原因与a
List<B>不可分配给的原因相同
List<A>。如果是这样,它将使以下(非类型安全的)代码成为可能:
List<Class<B>> bb = new ArrayList<B>();List<Class<? extends A>> aa = bb;aa.add(A.class);
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)