【发布时间】:2013-02-26 17:48:48
【问题描述】:
以下代码来自 Effective Java 书:
Set<Integer> integers = ... ;
Set<Double> doubles = ... ;
Set<Number> numbers = union(integers, doubles);
这段代码没有编译,作者建议通过告诉编译器确切的类型来解决这个问题,如下所示:
Set<Number> numbers = Union.<Number>union(integers, doubles)
如果联合的签名如下,为什么早期的程序不能编译?还有这个特殊的解决方法叫什么?
public static <E> Set<E> union(Set<? extends E> s1,
Set<? extends E> s2)
【问题讨论】:
标签: java generics effective-java