Java ist auch schnell und JDK 15 wird bald veröffentlicht! (Geplant für September 2020) Um ehrlich zu sein, konnte ich JDK14 nicht einholen, was kurz zuvor war. Nach vielen Recherchen fand ich heraus, dass das Konzept von "Records" als Vorschau-Version auf JDK14 veröffentlicht wurde, also schrieb ich einen kleinen Artikel.
Unten. https://openjdk.java.net/jeps/359 Der Datensatz wird jetzt zur Datenspeicherung bereitgestellt Die Klasse mit diesem Ergebnis führt zu einem unveränderlichen Objekt. Insbesondere hat es die folgende Form.
record Point(int x, int y) { }
Das Obige führt zu den folgenden Klassen.
class Point extends Record {
private final int x;
private final int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public int x() {
return x;
}
public int y() {
return y;
}
public int hashCode() { ... }
public boolean equals() { ... }
public String toString() { ... }
}
Wie oben erwähnt, ist die Feldvariable mit Ausnahme des Konstruktors unveränderlich.
Eine Klasse, die die Methoden von equals`` hashCode`` toString
implementiert, wird generiert.
Es scheint, dass der Wert des Arguments wie folgt überprüft werden kann.
record Point(int x, int y) {
public Range {
//Wenn für y nur Werte kleiner als x eingestellt werden können
if (x > y) throw IllegalArgumentException();
//Der Wert wird festgelegt, ohne ihn explizit wie unten gezeigt festzulegen.
// this.x = x;
// this.y = y;
}
}
Es ist immer noch eine Vorschau-Version, daher ist unklar, was in Zukunft passieren wird. Ich dachte, dass es intuitiv verständlich wäre, wenn man es in DTO oder mit "Record" verwendet. Persönlich war der Ausdruck "benanntes Tupel" der beste. Für diejenigen, die es genauer wissen möchten, war der folgende Artikel sehr einfach zu verstehen. https://www.infoq.com/jp/articles/java-14-feature-spotlight/
Java entwickelt sich stetig weiter ... Ich werde richtig aufholen. Danke fürs Lesen!
Recommended Posts