Wie von Oracle auf der Oracle Code One 2019 angekündigt, wurde Java 13 veröffentlicht.
Aktuelle Nachrichten Java 13 ist da. Neue Funktionen wie verbesserte ZGC und Realisierung des Switch-Typs. Oracle Code One 2019-Publickey](https://www.publickey1.jp/blog/19/java_13zgcswitch_oracle_code_one_2019.html) JDK 13 Documentation - Home
Das JDK wird (selbstverständlich) auch an OpneJDK verteilt.
Hier werden die Inhalte vorerst extrahiert, indem man sich auf die Sprachspezifikationen von Java SE 13 (JSR 388) konzentriert.
Diesmal gibt es nur wenige Änderungen in JDK13.
JEP 354: Switch Expressions (Preview)
Extend switch so it can be used as either a statement or an expression, and so that both forms can use either traditional case ... : labels (with fall through) or new case ... -> labels (with no fall through), with a further new statement for yielding a value from a switch expression. These changes will simplify everyday coding, and prepare the way for the use of pattern matching (JEP 305) in switch. This is a preview language feature in JDK 13.
Einfach ausgedrückt kann der Schalter in Anweisungen erweitert und als Ausdrücke und Anweisungen verwendet werden. Selbst in Java 12 wurde es in JEP 325: Ausdrücke wechseln (Vorschau) als Vorschaufunktion betrachtet, aber es wurde erneut überprüft und ist jetzt eine Vorschaufunktion. ..
Der erneut untersuchte Inhalt JEP 354: Switch Expressions (Vorschau) wird wie folgt beschrieben.
To yield a value from a switch expression, the break with value statement is dropped in favor of a yield statement.
Dies dient dazu, einen Wert zu generieren, indem der Rückgabewert deklariert wird, wenn im Block {} eine neue Yield-Anweisung beschrieben wird, wenn der Wert durch Verzweigen der switch-Anweisung zurückgegeben wird.
Unten finden Sie ein Implementierungsbeispiel
import java.time.LocalDate;
import java.time.DayOfWeek;
public class Tester_01 {
public static void main(String... args) {
LocalDate today = LocalDate.now();
System.out.println(java13(today.getDayOfWeek()));
}
private static int java13(DayOfWeek today) {
int numLetters = switch (today) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
default -> {
int k = today.toString().length();
yield k;
}
};
return numLetters;
}
}
Da es sich um eine Vorschau-Version handelt, ist zur Laufzeit die Option --enable-Preview erforderlich, wie unten gezeigt.
workspace> javac --enable-preview --release 13 .\Tester_01.java
Hinweis:.\Tester_01.Java verwendet die Vorschau-Sprachfunktion.
Hinweis:Detail ist,-Xlint:Bitte kompilieren Sie mit der Vorschau-Option neu.
PS C:workspace> java --enable-preview Tester_01
JEP 355: Text Blocks (Preview)
Add text blocks to the Java language. A text block is a multi-line string literal that avoids the need for most escape sequences, automatically formats the string in a predictable way, and gives the developer control over format when desired. This is a preview language feature in JDK 13.
Zuvor wurde beim Schreiben einer mehrzeiligen Zeichenfolge die in "(" eindimensionale "Zeichenfolgenliterale) eingeschlossene Zeichenfolge mit dem Operator + beschrieben, aber" Durch das Einschließen in "" `(" zweidimensionaler "Textblock) ist es nicht mehr erforderlich, den Operator + zu beschreiben.
Traditionelle Notation
ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
Object obj = engine.eval("function hello() {\n" +
" print('\"Hello, world\"');\n" +
"}\n" +
"\n" +
"hello();\n");
Notation von JEP355
ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
Object obj = engine.eval("""
function hello() {
print('"Hello, world"');
}
hello();
""");
Dies scheint nützlich zu sein, wenn SQL mithilfe von Anmerkungen implementiert wird.
Wir werden die API separat untersuchen. Wenn Sie Fragen oder seltsame Informationen haben, stellen Sie bitte eine Bearbeitungsanfrage.
Recommended Posts