File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Generics : Raw to ? extends objects Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Generics : Raw to ? extends objects" Watch "Generics : Raw to ? extends objects" New topic
Author

Generics : Raw to ? extends objects

Kim Ming Yap
Ranch Hand

Joined: Dec 17, 2008
Posts: 53



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

Joined: Jun 25, 2010
Posts: 42
No idea, I'd like to know too.

Kim Ming Yap
Ranch Hand

Joined: Dec 17, 2008
Posts: 53

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.

 
Consider Paul's rocket mass heater.
 
subject: Generics : Raw to ? extends objects