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
(
Thanks in advance!