posted 18 years ago
Hi there,
I just took the selftest and while reviweing the answers, I got stuck on the last question.
Q16:
Given a method declared as
-> public static <E extends Number> List<E> process(List<E> nums)
A programmer wants to use this method like this:
//INSERT DECLARATIONS HERE
output = process(input)
Which pairs could be inserted at //INSERT DECLARATIONS HERE ?
A.
B.
ArrayList<Integer> input = null;
List<Integer> output = null;
C.
ArrayList<Integer> input = null;
List<Number> output = null;
D.
E.
List<Number> input = null;
List<Number> output = null;
F.
List<Integer> input = null;
List<Integer> output = null;
G.
The answers should be B,E,F, but not C.
The explanation to C is:
"C is wrong because the return type evaluates to List<Integer>, and that can't be assigned to a variable of type List<Number>."
I absolutely understand this, but then, why is F correct?
Any help appreciated.
Many Thanks in advance.
Ciao,<br /> Tommaso<br /> <br />~*~*~*~<br />There are 10 types of people, those who understand binary and those who don't.