0

鉴于此方法:

public static <E extends Number> List<E> process(List<E> num)

我想做这个 :

ArrayList<Integer> input = null ;
ArrayList<Integer> output = null ;

output = process(input);

我得到一个例外:类型不匹配:无法转换List<Integer>ArrayList<Integer>

我知道我可以有这样正确的东西:

List<Integer> list = new ArrayList<Integer>;

为什么它在这里不起作用?

4

2 回答 2

4

问题是返回类型。process()返回 aList<E>并且您正试图将其填充到ArrayList<E>

于 2012-12-13T21:22:55.313 回答
0

您的流程方法需要返回接口 List 的实现。这也可能与 ArrayList 不兼容,例如。一个链表。编译器注意到并禁止它。

于 2012-12-13T21:27:05.547 回答