Dear All,
The following is a question from K & B SCJP5.0 guide:
Given a method declared as:
A programmer wants to use this method like this:
Which pair 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.
Correct Answers given are: B, E, F
But I thought the answer would be 'G' because the method returns a List<? super E> where E is the element type of the List which was passed as argument to the method 'process' & hence if:
'input' is List<Integer> then 'output' should be a List<? super Integer>.
Someone please help me with this question I think I got confused somewhere; but dont understand where
I have actually posted the same under forum subtopic '
Java Certification', but i got confused over the replies I got; hence posting it again, sorry for the trouble.
Thanks in advance!