Maison  >  Article  >  Java  >  Inférence de type de variable locale dans Java 10 : comment utiliser le mot-clé var dans l'expression lambda

Inférence de type de variable locale dans Java 10 : comment utiliser le mot-clé var dans l'expression lambda

PHPz
PHPzoriginal
2023-08-02 16:25:11777parcourir

Inférence de type de variable locale en Java 10 : Comment utiliser le mot-clé var dans les expressions lambda

Citation :
Java 10 a introduit une nouvelle fonctionnalité d'inférence de type de variable locale, qui nous permet d'utiliser le mot-clé var tout en déclarant des variables locales pour déduire son type. Bien que cette fonctionnalité ne soit pas nécessaire dans la plupart des cas, elle peut dans certains cas améliorer la lisibilité et la simplicité du code. Cet article se concentrera sur la façon d'utiliser le mot-clé var dans les expressions lambda pour implémenter l'inférence de type de variable locale.

Qu'est-ce que l'inférence de type de variable locale ?
Dans les versions antérieures de Java, nous devions spécifier explicitement le type d'une variable locale lors de sa déclaration. Par exemple :

String name = "John";
int age = 25;

Cependant, à partir de Java 10, nous pouvons utiliser le mot-clé var pour permettre au compilateur de déduire automatiquement le type d'une variable en fonction de l'expression du côté droit sans avoir à le spécifier explicitement. Par exemple :

var name = "John";
var age = 25;

Dans cet exemple, le compilateur déduira que le type de nom est String et le type d'age est int en fonction de l'expression de droite.

Avantages de l'utilisation du mot-clé var dans les expressions lambda :
Lorsque nous utilisons des expressions lambda, nous créons généralement une instance d'une interface fonctionnelle à transmettre à d'autres méthodes. L'utilisation du mot-clé var peut nous éviter d'avoir à spécifier les types de paramètres lors de la création d'instances d'expression lambda. De cette façon, nous pouvons nous concentrer davantage sur la logique de l'expression lambda sans trop prêter attention à la déclaration du type du paramètre.

Exemple de code :
Supposons que nous ayons une classe appelée Person, qui contient deux attributs : nom et âge :

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

Maintenant, nous voulons trier en fonction de l'attribut name des objets Person. Avant Java 10, nous devions spécifier manuellement le type générique de Comparator :

List<Person> persons = // 初始化Person对象列表

Collections.sort(persons, new Comparator<Person>() {
    @Override
    public int compare(Person p1, Person p2) {
        return p1.getName().compareTo(p2.getName());
    }
});

Dans cet exemple, nous avons créé une classe interne anonyme pour implémenter l'interface Comparator et y avons remplacé la méthode de comparaison. Cependant, le mot-clé var dans Java 10 rend le code plus propre :

List<Person> persons = // 初始化Person对象列表

Collections.sort(persons, (var p1, var p2) -> {
    return p1.getName().compareTo(p2.getName());
});

Dans cet exemple, nous avons utilisé le mot-clé var pour déduire les types de p1 et p2 sans avoir à déclarer explicitement leur type comme Personne.

Conclusion : 
L'inférence de type de variable locale de Java 10 est une fonctionnalité puissante qui nous permet d'écrire du code plus propre et plus lisible. Utiliser le mot-clé var dans une expression lambda nous permet de nous concentrer sur l'implémentation de la logique sans avoir à prêter trop d'attention à la déclaration de type des paramètres. Bien entendu, même si cette fonctionnalité peut être très utile dans certaines situations, il faut tout de même l’utiliser avec prudence pour garantir la maintenabilité et la lisibilité du code.

Matériaux de référence :

  • Documentation officielle d'Oracle : https://docs.oracle.com/en/java/javase/10/langue/local-variable-type-inference.html
  • Tutoriel d'expression Java Lambda : https : //www.javatpoint.com/java-lambda-expressions

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