JDK7 Testfahrt – Teil 1
Heute habe ich mir den Snapshot Build b134 des Java7 SDKs sowie die Beta 2 von Netbeans 7 heruntergeladen, um die neuen Sprachfeatures Probe zu fahren.
Eine gute Übersicht über alle neuen Features ist hier zu finden. Bekanntermassen wurden letztes Jahr die spannendsten Features “Closures” und “Collection Literals” in das JDK8 verschoben. Nichtsdestotrotz bietet das JDK7 mit dem JSR 334 kleine, sinnvollere Spracherweiterungen.
Binary Literals
Eins davon sind die “binary literals”. In früheren JDKs konnten numerische Literale im Quelltext in dezimaler, hexadezimaler oder oktaler Schreibweise erscheinen. Der Compiler des JDK7 erlaubt nun auch eine binäre Representation:
int answer = 0b101010;
Unterstriche in numerischen Literale
Desweiteren können Zahlen zwecks besserer Lesbarkeit im Quelltext auch mit einem Unterstrich optisch gruppiert werden. Dabei ist zu beachten, dass die Unterstriche nicht am Anfang oder am Ende eines Literals stehen dürfen.
long words1 = 0xCAFE_BABE; // ok long words2 = 0xCAFE_BABE_; // Compiler-Fehler long words3 = 0x_CAFE_BABE; // Compiler-Fehler
Strings im switch-Statement
Nun kann auch ein String im switch-Statement verwendet werden. Der case-Vergleich findet analog zu der java.lang.String#equals-Methode statt. Das nachfolgende Beispiel gibt “banana” auf der Konsole aus.
final String fruit = "banana";
switch (fruit) {
case "Apple":
System.out.println("Apple");
break;
case "Banana":
System.out.println("Banana");
break;
case "banana":
System.out.println("banana");
break;
}
Ob ein String-Vergleich immer eine gute Idee ist, sei dahin gestellt. Schliesslich funktioniert ein Switch-Case seit dem JDK5 auch mit dem Enum-Konstrukt.
So. Genug für heute. Im nächsten Blogpost drehen wir eine weitere Runde.