This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
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.
Joined: Dec 11, 2006
I think I understand it now. It's because in C the input is ArrayList<Integer>!!