Java est rapide et JDK15 sortira bientôt! (Prévu pour septembre 2020)
Cependant, pour être honnête, je n'ai pas réussi à rattraper JDK14, qui était juste avant cela.
Après de nombreuses recherches, j'ai découvert que le concept de Records
était sorti en version préliminaire sur JDK14, j'ai donc écrit un petit article.
Au dessous de. https://openjdk.java.net/jeps/359 L'enregistrement est maintenant fourni pour le stockage des données La classe avec ceci aboutira à un objet immuable. Plus précisément, il a la forme suivante.
record Point(int x, int y) { }
Les résultats ci-dessus dans les classes suivantes.
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() { ... }
}
Comme mentionné ci-dessus, la variable de champ est immuable sauf pour le constructeur,
Une classe qui implémente la méthode ʻequals
hashCode`` toString` est générée.
Il semble que la valeur de l'argument puisse être vérifiée comme suit.
record Point(int x, int y) {
public Range {
//Lorsque seules des valeurs inférieures à x peuvent être définies pour y
if (x > y) throw IllegalArgumentException();
//Il définira la valeur sans la définir explicitement comme indiqué ci-dessous.
// this.x = x;
// this.y = y;
}
}
Il s'agit toujours d'une version préliminaire, donc on ne sait pas ce qui se passera à l'avenir
J'ai pensé que ce serait intuitivement compréhensible en l'utilisant dans DTO ou en utilisant Record
.
Personnellement, l'expression «tuple nommé» était la meilleure.
Pour ceux qui veulent en savoir plus, l'article suivant était très facile à comprendre.
https://www.infoq.com/jp/articles/java-14-feature-spotlight/
Java évolue régulièrement ... Je vais rattraper correctement. Merci pour la lecture!
Recommended Posts