This week's book giveaways are in the Java EE and JavaScript forums.
We're giving away four copies each of The Java EE 7 Tutorial Volume 1 or Volume 2(winners choice) and jQuery UI in Action and have the authors on-line!
See this thread and this one for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Generics question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Generics question" Watch "Generics question" New topic
Author

Generics question

Rikesh Desai
Ranch Hand

Joined: Jun 02, 2010
Posts: 83
Source : ExamLab



At line 1, why is new E() not possible??
As from line 2,
? super T --> E super T which implies T extends E
T extends E from --> public <T extends E>...

everything matches, then why is new A(); only possible and not new E()??


OCPJP 95%
Maren Fisher
Greenhorn

Joined: Nov 29, 2009
Posts: 7
You cannot do "new E()" because E is just a placeholder for a type that will be defined when you instantiate the class. The compiler does not know what type E represents.

You can do new A because A is a concrete class. But for E all you know is it is a type that extends A, but you don't know what that type that is. Hence you cannot do new E();
 
 
subject: Generics question