This week's book giveaway is in the Other Languages forum.
We're giving away four copies of Functional Reactive Programming and have Stephen Blackheath and Anthony Jones on-line!
See this thread for details.
Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Doubt in Generics

 
Lata Bagga
Ranch Hand
Posts: 35
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello Friends,

I have doubt in the following question which is Q no. 16(Chapter 7) from KS & BB of Generics and Collection:



I am not able to understand why option C is not correct. As the return type is List<? super E> and if E is an Integer then List<Number> should work for it.
Can anyone help me with it?

Regards,
Lata
 
Vitor Isaia
Greenhorn
Posts: 12
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Both sides (reference and object) need to be of the exaclty same generic type... even if one of the types extends the other one...

So "C" is wrong because the type is different... Number and Integer.
You can't have something like this:
List<Number> l = new ArrayList<Integer>();

Regards,

Vitor
 
ahmed yehia
Ranch Hand
Posts: 424
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This is an errata question, the correct method signature is:

public static <E extends Number> List<E> process(List<E> nums)
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic