|
jsp-develop.de presents: Java 1.5 (Tiger) |
| von shark, 30.06.2004 16:12:02 |
|
Die Beta Version vom JDK 1.5 (Tiger) ist mittlerweile auf der Homepage von Sun Microsystems (TM) verfügbar. Tiger beinhaltet neben Erweiterung im Bereich der Java-Bibliotheken auch Java Spracherweiterungen wie zum Beispiel eine For-Each-Schleife oder den Enumerationstyp. Interessant sind dabei auch die parametrisierbaren Typen, die sogennanten Java Generics. Java Generics haben Parallelen zu den C++ Templates, sind allerdings nicht mit diesen gleichzusetzen. Generics bieten Typsicherheit zur Kompilierzeit und nicht zur Laufzeit einer Java Anwendung. Generics Syntax: ------------------------- class MyClass<Type> { Type value = null; public Type getValue() { return(this.value); } public void setValue(final Type value) { this.value = value; } } Im JSR-14 sind weiterführende Informationen zu den Generics, wie zum Beispiel: Verschachtelte Generics und Multi-Generics nachzulesen. Mit Tiger wird auch das Casten von Objekttyp zu Objekttyp und von Objekttypen in elementare Datentypen einfacher, weil durch das Autoboxing implizite Typcasts erfolgen können. Statische Imports ermöglichen das Importieren von statischen Member-Variablen (Attribute), einer Klasse oder eines Interfaces ohne deren Typ referenzieren zu müssen. Diese Funktion ist insbesondere für den Import von Java Konstanten interessant. In dem nachfolgenden Beispiel werden alle statischen Attribute der Klasse "States" importiert: import static de.jsp.develop.tiger.States.*; In Tiger sind auch Verbesserungen bezüglich des Thread-Schedulings und Erweiterungen in Bezug auf die Java Virtual Machine von Bedeutung. Details sind im Rahmen des Java Community Prozesses im JSR-176 nachzulesen. Als Anregung an dieser Stelle ein kleines Java Beispielprogramm mit neuen Tiger Features: /** * JSP-Develop Tiger (Java 1.5) forecast */ package de.jsp.develop.tiger; import java.util.*; /** * Tiger class which shows new features of * Java 1.5. * * Features: * (1) generics string list * (2) for-each-loop * (3) C/C++ style printf method * (4) autoboxing * (5) enumeration type */ public class Tiger { /** * generics string list */ static private List<String> stringList = new ArrayList<String>(); /** * enumeration */ static public enum Levels {LEVEL_1, LEVEL_2, LEVEL_3}; /** * main method * (as an example and for test purpose only!) * @param args */ public static void main(String[] args) { /** * java generics and for-each-loop example */ // add string entry: allowed because of string object stringList.add("Generics"); // add integer entry: produces compiler error because of integer object //--> stringList.add(new Integer(1)); // for each loop to iterate over string list for(String entry: stringList) { System.out.printf("String-Listeintrag: %s\n", entry); } /** * autoboxing example */ Integer x = new Integer(6); int y = x; System.out.printf("Autoboxing : %d\n", y); int y1 = 6; Integer x1 = y1; System.out.printf("Autounboxing : %d\n", x1); Integer x2 = new Integer(12); Number y2 = x2; System.out.printf("Impliziter Typcast: %d\n", y2); /** * enum example */ printLevel(Levels.LEVEL_1); printLevel(Levels.LEVEL_2); printLevel(Levels.LEVEL_3); } /** * print level method * (based on enumeration type) * @param level */ static public void printLevel(final Levels level) { switch(level) { case LEVEL_1: System.out.printf("LEVEL_1\n"); break; case LEVEL_2: System.out.printf("LEVEL_2\n"); break; case LEVEL_3: System.out.printf("LEVEL_3\n"); break; default: System.out.printf("DEFAULT_LEVEL\n"); } } } |
|
URL dieses Beitrags: http://www.jsp-develop.de/forumbeitrag/view/27245/ |