File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Generics : Raw to ? extends objects

 
Kim Ming Yap
Ranch Hand
Posts: 53
Android C++ Java
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator


I just don't understand this.

List list = new ArrayList(); List <? extends objects> list1 = list; // unchecked conversion warning.

Since object is the highest upper bound in java, i don't see no reasons why the warning is there. Please advice
 
Chad Michaels
Ranch Hand
Posts: 42
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
No idea, I'd like to know too.

 
Kim Ming Yap
Ranch Hand
Posts: 53
Android C++ Java
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Try this ..

List list = new ArrayList();
List <?> list2 = list; // This will not gives unchecked warning.

Basically:
1.raw to <?> and <?> to raw is fine
2a.raw to <? extends objects> warning.
2b.<? extends objects> to raw is fine since raw is the superclass.
3.<?> to <? extends objects> and <? extends objects> to <?> fine

i just don't understand 2a. If raw to <? extends Integer> gives unchecked warning .. i understand since that is not the highest upper bound.
Basically SCJP by Khalid says that raw to BOUNDED or concrete parameterzied type will gives warning. I just dont understand why upper bounded extending objects are not made exception from this rule.

 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic