Do 13 Jul 2006
Java-Blog
Posted by andreas.mertens under IT, LawsOfForm
No Comments
Im Rahmen meiner Java-Experimente für einen LoF-TermEditor habe ich mich nun endlich mit Java 1.5 angefreundet. Etwas gewohnheitsbedürftig sind die vielen neuen Features von Java 1.5 wie z.B. Generic Types. So konnte man früher zum Beispiel problemlos beliebige Objekte in einen Vector speichern. Dies sah dann in etwa so aus:
Vector crosses = new Vector(); crosses.add(newcross);
Kompiliert man eine solche Zeile mit dem Java-Kompiler in der Version 1.5 dann erhält man folgende Meldung, wenn man z.B. die Methode add() des Vectors auffruft:
Cross.java uses unchecked or unsafe operations.
Dies kann man in der neuen Version wie folgt “handeln”:
Vector<Cross>crossed = new Vector<Cross>(); crossed.add(newcross);
Dieser Code führt dann nicht mehr zu der Warnmeldung. Auf der Suche nach der Lösung bin ich auf einen interessanten Java-Blog gestossen: http://java.blogger.de/
Ganz so einfach gestaltet sich das Coding nicht, wie man im rechten Screenshot sieht. Das “gelbe” Cross ist eigentlich das “oberste” Cross. Na dann geh’ ich mal auf die Suche, wo der Fehler liegt. Nachfolgender Java-Code zeigt die Konstruktion dieses Ausdrucks:
Cross topCross = new Cross("childCross", Color.BLACK);
topCross.insertCross(new Cross());
topCross.insertCross(new Cross());
topCross.insertCross(new Cross());
topCross.insertCross(new Cross());
Cross cross3 = new Cross("drittes cross", Color.RED);
cross3.insertCross(new Cross());
Cross toptopCross = new Cross("topCross", Color.YELLOW);
toptopCross.insertCross(topCross);
secondchildcross = new Cross("secondchildcross", Color.GREEN);
toptopCross.insertCross(secondchildcross);
toptopCross.insertCross(cross3);
Ich vermute, der Re-Entry-Haken wird auch noch eine “besondere” Herausforderung.

