[linux-l] generics in java
Ivan Villanueva
iv at artificialidea.com
Mi Jun 1 15:12:56 CEST 2005
On Tue, May 31, 2005 at 10:45:53PM +0200, Axel Weiß wrote:
> BTW: Sun arbeitet seit einigen Jahren daran, Templates für Java
> anzubieten. Weiß hier jemand, ob daraus was geworden ist?
Seit Java 1.5 (auch 5 oder Tiger genannt) gibt es generics. (fast ein
Jahr)
Ich habe gelesen, daß generics anders ist als templates in C++ :
Da in Java alles bei der Übersetzung überprüfbar ist (Stärke von Java),
wird das generische Code bei der Übersetzung geprüft, und dann aber
nicht kompiliert (man brauch es nicht).
Ein Beispiel:
ArrayList<String> als = new ArrayList<String>() ;
als.add("hallo") ;
String s = als.get(0) ;
// als.add(1) Übersetzungsfehler
// int i = als.get(0) Übersetzungsfehler
Nichts von den Generics wird aber kompiliert, weil es nicht nötig ist.
Die Übersetzende Code könnte man so beschreiben:
ArrayList als = new ArrayList() ; // ArrayList von Objects
als.add("hallo") ; // "hallo" ist auch ein Object
String s = (String)als.get(0) ; // Castling
Templates in Java:
http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf
Iván.
Mehr Informationen über die Mailingliste linux-l