Java14
Java 14 wurde am 17. März 2020 veröffentlicht. Unter den in Java14 hinzugefügten Funktionen möchte ich die Funktionen vorstellen, die zum Schreiben von Code verwendet werden können.
record(preview)
Sie können einfach eine Klasse zum Speichern von Daten erstellen.
public record Customer(String name, String age){}
Das Äquivalent der folgenden Klasse wird erstellt.
public class Customer {
private final String name;
private final String age;
public Customer(String name, String age) {
this.name = name;
this.age = age;
}
public String name() {
return this.name;
}
public String age() {
return this.age;
}
public String hashCode() {...}
public boolean equals() {...}
public String toString() {...}
}
Da die Methode zum Festlegen des Werts nicht definiert ist, kann der Wert nach der Instanziierung nicht mehr geändert werden.
Es ist jetzt möglich, eine Zeichenfolge zu definieren, die Zeilenumbrüche enthält. Wenn Sie die Zeichenfolge mit "" anstelle von "" einschließen, wird sie als Textblock erkannt.
String str1 = "aaaa\n"
+ "bbb";
String str2 = """
aaa
bbb\
"""
Die beiden obigen Zeichenfolgen zeigen dasselbe an. Wenn Sie die Zeile nicht unterbrechen möchten, geben Sie \ ein.
Helpful NullPointerExceptions
Es ist jetzt möglich, eine detaillierte Nachricht auszugeben, wenn eine NullPointerException auftritt.
String str = null;
str.length(); // NullPointerException
Standardmäßig wird die folgende Ausnahme ausgegeben.
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:5)
Wenn Sie es in Java14 mit "-XX: + ShowCodeDetailsInExceptionMessages" ausführen, wird die folgende detaillierte Ausnahme ausgegeben.
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "<local1>" is null
at Test.main(Test.java:5)
Sie können jetzt Variablen dieses Typs definieren, während Sie den Typ mit instanceof überprüfen.
Object obj = "obj";
if (obj instanceof String str){
System.out.println(str.length());
}
Recommended Posts