File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java in General and the fly likes Doubt in Generics Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Reply locked New topic

Doubt in Generics

Jisha Anand
Ranch Hand

Joined: Apr 02, 2009
Posts: 62

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!

Ulf Dittmer

Joined: Mar 22, 2005
Posts: 42965
Please do not post the same question to multiple forums: CarefullyChooseOneForum

Let's continue the discussion in the original thread. If you have questions about some of the answers, post them there for clarification.
I agree. Here's the link:
subject: Doubt in Generics
It's not a secret anymore!