In self
test number 16th. I find a problem,it seems that every answer is wrong!!,why?
16.Given a method declared as:
public static <E extends Number> List<? super E> process(List<E> nums)
A programmer wants to use this method like this:
// INSERT DECLARATIONS HERE
output = process(input);
Which pairs of declarations could be placed at // INSERT DECLARATIONS HERE to allow the code to compile? (Choose all that apply.)
A. ArrayList<Integer> input = null;
ArrayList<Integer> output = null;
B ArrayList<Integer> input = null;
List<Integer> output = null;
c ArrayList<Integer> input = null;
List<Number> output = null;
d List<Number> input = null;
ArrayList<Integer> output = null;
e List<Number> input = null;
List<Number> output = null;
f List<Integer> input = null;
List<Integer> output = null;
g None of the above. I try out every answer,but it compile wrong!

Who can tell me why and explain how this work?
The compiler say:"Type mismatch: cannot convert from List<capture-of ? super Integer> to List<Number>"

WHY
What it means "capture-of ?".I used following codes in eclipse3.3.
[ June 03, 2007: Message edited by: Zhao zhenhua ]