À propos des enregistrements ajoutés pour l'aperçu dans Java JDK 14

introduction

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.

Qu'est-ce que les enregistrements

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;
  }
}

Impressions

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

À propos des enregistrements ajoutés pour l'aperçu dans Java JDK 14
Une histoire sur le JDK à l'ère de Java 11
À propos de la classe abstraite Java
Liste des membres ajoutés dans Java 9
A propos du traitement de la copie de fichiers en Java
Liste des types ajoutés dans Java 9
A propos du renvoi d'une référence dans un Java Getter
[Création] Un mémorandum sur le codage en Java
[Java] Définir AdoptOpen JDK dans STS (Eclipse)
Discussion continue sur l'écriture de Java avec Emacs @ 2018
À propos de l'interface Java
À propos de la confusion observée dans les serveurs Java de démarrage
À propos de l'idée des classes anonymes en Java
Jdk d'installation Java
[Java] À propos des tableaux
Essayez de gratter environ 30 lignes en Java (sortie CSV)
Changements dans Java 11
À propos de var utilisé en Java (type de variable locale)
Janken à Java
Quelque chose à propos de java
Où est Java
À propos des fonctionnalités Java
À propos des threads Java
Interface [Java]
À propos de la classe Java
À propos des tableaux Java
À propos de l'héritage Java
À propos de l'interface, interface java
Taux circonférentiel à Java
FizzBuzz en Java
À propos de Java Var
À propos de Java Literal
À propos des commandes Java
J'ai écrit sur Java downcast d'une manière facile à comprendre
[Java] Points à noter sur l'inférence de type étendue dans Java 10
Pensez au problème JAVA = JAVAscript (nécessaire à l'avenir)
À propos de la conversion pleine largeur ⇔ demi-largeur des chaînes de caractères en Java
À propos de la sortie du journal Java
À propos de l'interface fonctionnelle Java
Lire JSON en Java
Faites un blackjack avec Java
Java, à propos d'un tableau à deux dimensions
Programmation par contraintes en Java
À propos de la division de classe (Java)
Mettez java8 dans centos7
Questions et réponses sur JDK
NVL-ish guy en Java
Joindre des tableaux en Java
À propos de [Java] [StreamAPI] allMatch ()
L'aperçu Records publié dans JDK 14 est sympa alors essayons-le avec JShell
À propos de la classe Java StringBuilder
"Hello World" en Java
Interface appelable en Java
[Java] À propos de la classe Singleton
Commentaires dans la source Java
Fonctions Azure en Java
[Java] À propos des classes anonymes
A propos des méthodes de fractionnement (Java)