[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