aspose file tools
The moose likes Beginning Java and the fly likes Generics Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login


JavaRanch » Java Forums » Java » Beginning Java
Reply Bookmark "Generics" Watch "Generics" New topic
Author

Generics

ujjawal rohra
Ranch Hand

Joined: Mar 20, 2010
Posts: 88
import java.util.*;
class exp{

public static void main(String ar[])
{
List <? extends Number>l1=null;
List<? super Number> l2=null;
l2=l1;
}
}

Why does this code not work?


SCJP 6
Devaka Cooray
Saloon Keeper

Joined: Jul 29, 2008
Posts: 2586

Welcome to JavaRanch.
Please UseCodeTags when you post a code at JavaRanch. Please edit your post and add code tags.
Not related to Servlets - Moving to BG...

This message was edited 1 time. Last update was at by Devaka Cooray



Author of ExamLab - the free mock exam kit for SCJP / OCPJP
Home Page -- Twitter Profile -- JavaRanch FAQ -- How to Ask a Question
Devaka Cooray
Saloon Keeper

Joined: Jul 29, 2008
Posts: 2586

It is because the generics-scope of l1 and l2 do not match.
Please read GenericsSuperAndExtends to understand the scope of 'extends' and 'super'.
Ireneusz Kordal
Ranch Hand

Joined: Jun 21, 2008
Posts: 413
Consider what would be if this assignment was legal:

In this code in line 6 we get Object from the list that is declared that can contain only Numbers.
This breaks program with ClassCastException.
To avoid situation like this, compiler prevents assignment in line 04.

This message was edited 2 times. Last update was at by Ireneusz Kordal

 
 
subject: Generics
 
WebSphere development made easy
without the weight of IBM tools
http://www.myeclipseide.com