Java 12 ist da! Lernen Sie hier die neuen Features kennen.
Neuer switch-Case
Es gibt zwei grosse Neuerungen im bezug auf die switch
/case
Funktion mit Java 12, beide sind aktuell im preview Status.
-
Neu kann der beliebte
Arrow syntax
auch beiswitch
/case
Statements verwendet werden. Dadurch werdenbreak
Statements unnötig, was echt sexy ist. -
switch
-Statements können neu einen Rückgabewert haben und können so direkt als Expression verwendet werden
Der traditionelle Weg
switch (fruit) {
case "apple":
case "banana":
System.out.println("tasty");
break;
case "citron":
System.out.println("uuugh");
break;
default:
System.out.println("ok");
}
Der neue Weg
// Arrow syntax
switch (fruit) {
case "apple", "banana" -> System.out.println("tasty");
case "citron" -> System.out.println("uuugh");
default -> System.out.println("ok");
}
// Switch as an Expression
String taste = switch (fruit) {
case "apple", "banana" -> "tasty";
case "citron" -> "uuugh";
default -> "ok";
}
Raw String literals
Ein anderes, neues Feature welches direkt 'The way of coding' verändert sind raw string literals
.
Dies ist aktuell ebenfalls ein Preview-Feature, neu ist ein möglich, mehrzeilige Strings oder Strings mit Sonderzeichen, einfach zu erstellen.
Solche raw string literals
werden mit Backticks generiert. Die neue align
Methode ermögtlich es sogar, mehrzeilige String korrekt auszurichten (Indents).
Sicherlich, auf den ersten Blick ist dies ein klasse Feature, der 'Real World Use-Case' ist aber nicht sofort ersichtlich. Eventuell können so in der Zukunft SQL-Query o. ä. formatiert werden.
Der traditionelle Weg
// traditional string
final String s1 = "hello world";
// traditional multiline string
final String s2 = "line1\nline2";
Der neue Weg
// raw string literals
final String rsl1 = `hello world`;
final String rsl2 = `
line1
line2
line3`;
final String rsl3 = ``backtick`inside``;
final String rsl4 = `\n`;
System.out.println(rsl1);
System.out.println(rsl2);
System.out.println(rsl3.align());
System.out.println(rsl4);
System.out.println(rsl1.length());
// will print :
hello world
line1
line2
line3
line1
line2
line3
backtick`inside
2
Neues Preview-Feature
Mit Java 12 gibt es einen neuen Feature Type, genannt preview
.
Will man diese Features verwenden, kann man diese per Kommandozeilenparameter -enable-preview
aktivieren.
Zwei Dinge sollte man bezüglich der preview
-Features im Kopf behalten:
- Die Funktionalität kann sich verändern
- Ein Preview Feature kann zu einem offiziellen Feature promoted werden oder komplett entfernt werden