Maison  >  Article  >  Java  >  Comment utiliser la classe Records dans Java 14 au lieu des objets DTO traditionnels

Comment utiliser la classe Records dans Java 14 au lieu des objets DTO traditionnels

PHPz
PHPzoriginal
2023-07-29 09:22:531160parcourir

Comment utiliser la classe Records en Java 14 pour remplacer l'objet DTO traditionnel

Dans le développement Java traditionnel, afin de transférer des données entre différents niveaux, nous utilisons généralement des objets DTO (Data Transfer Object). Un objet DTO est une simple classe Java utilisée pour encapsuler des données et les transmettre entre différents composants. Cependant, créer et maintenir un grand nombre de classes DTO peut devenir fastidieux et redondant. Java 14 a introduit la classe Records, qui offre un moyen plus concis et intuitif de définir des classes d'encapsulation de données.

La classe Records peut nous aider à créer rapidement des classes de données immuables. Elle génère automatiquement des constructeurs, des méthodes getter, des égaux, hashCode, toString et d'autres méthodes pour nous. L'utilisation de la classe Records peut réduire considérablement notre charge de travail d'écriture de code tout en améliorant la lisibilité et la maintenabilité du code.

Voici un exemple d'utilisation de la classe Records :

public record Person(String name, int age) {}

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice", 25);
        System.out.println(person.name());
        System.out.println(person.age());
        System.out.println(person);
    }
}

Dans l'exemple ci-dessus, nous avons défini une classe Person, qui est déclarée à l'aide du mot-clé record. Nous définissons également deux attributs : le nom et l'âge. La classe Records générera automatiquement un constructeur avec les paramètres nom et âge, ainsi que la méthode getter correspondante.

Dans la méthode main, nous créons un objet Person à l'aide du nouveau mot-clé et obtenons les valeurs d'attribut de l'objet en appelant les méthodes name() et age(). Enfin, en appelant la méthode toString(), nous pouvons imprimer directement l'objet Person.

En plus des méthodes générées automatiquement, la classe Records nous fournit également quelques fonctions spéciales. Par exemple, la classe Records génère automatiquement un modificateur final pour chaque propriété, ce qui en fait un champ immuable. Cela signifie que nous ne pouvons pas modifier les valeurs des propriétés de l'objet après sa création, garantissant ainsi l'immuabilité de l'objet.

Une autre fonctionnalité utile est que la classe Records implémente automatiquement les méthodes equals et hashCode pour nous. Cela signifie que nous pouvons utiliser l'opérateur == pour comparer deux objets Records sans avoir à écrire manuellement la méthode égale.

Dans le même temps, la classe Records fournit également une méthode de copie très pratique pour créer un nouvel objet avec les mêmes propriétés que l'objet d'origine mais des valeurs différentes. En utilisant la méthode de copie, nous pouvons facilement modifier les valeurs de propriété d'un objet sans écrire manuellement de logique de copie.

public record Person(String name, int age) {}

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice", 25);
        Person modifiedPerson = person.withAge(30);
        System.out.println(modifiedPerson);
    }
}

Dans l'exemple ci-dessus, nous avons créé un nouvel objet Person en utilisant la méthode withAge, où la propriété age a été modifiée à 30. Nous n'avons besoin que de modifier les propriétés qui nous intéressent et nous n'avons pas besoin de prêter attention aux valeurs des autres propriétés.

La classe Records peut également être utilisée avec d'autres fonctionnalités telles que la correspondance de modèles. La correspondance de modèles est une autre fonctionnalité importante de Java 14 qui nous aide à gérer plus facilement différents états d'objets.

public record Person(String name, int age) {}

public class Main {
    public static void main(String[] args) {
        Person person = new Person("Alice", 25);

        if (person instanceof Person p) {
            System.out.println(p.name());
            System.out.println(p.age());
        }
    }
}

Dans l'exemple ci-dessus, nous utilisons la correspondance de modèles pour lier les propriétés de l'objet Person à la variable p et la générer dans l'instruction if. Cela nous permet d'utiliser la classe Records de manière plus intuitive pour gérer différents états d'objets.

En résumé, la classe Records de Java 14 nous offre une manière plus concise et intuitive de définir des classes d'encapsulation de données. En générant automatiquement des constructeurs, des méthodes getter, des méthodes égales et autres, nous pouvons réduire considérablement la charge de travail d'écriture de code. Dans le même temps, certaines fonctions spéciales de la classe Records et leur combinaison avec d'autres fonctions nous permettent de traiter les objets de données plus efficacement. Cela fait de la classe Records un bon choix pour remplacer les objets DTO traditionnels dans le développement Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn