Maison > Java > javaDidacticiel > Quelles sont les limites supérieure et inférieure des fonctions génériques Java ? comment utiliser?

Quelles sont les limites supérieure et inférieure des fonctions génériques Java ? comment utiliser?

王林
Libérer: 2024-04-26 11:45:02
original
720 Les gens l'ont consulté

Les génériques des fonctions Java permettent de définir des limites supérieures et inférieures. La limite supérieure (étend) spécifie que le type de données accepté ou renvoyé par la fonction doit être un sous-type du type spécifié, tel que . La limite inférieure (super) spécifie que le type de données accepté ou renvoyé par la fonction doit être le super type du type spécifié, tel que . L'utilisation de génériques améliore la réutilisabilité et la sécurité du code.

Java 函数泛型的上限和下限是什么?如何使用?

Limites supérieures et inférieures des fonctions génériques Java

Les génériques de fonctions sont un mécanisme puissant qui nous permet de spécifier au moment de la compilation les types de données qu'une fonction peut gérer. Les génériques en Java peuvent déclarer des limites supérieures et inférieures pour limiter les types de données acceptés ou renvoyés par une fonction.

Upper Bound

La limite supérieure spécifie que le type de données que la fonction peut accepter ou renvoyer doit être un sous-type d'un type spécifié. Il est spécifié à l'aide du mot-clé extends. Par exemple :

public <T extends Number> void printNumber(T number) {
   System.out.println(number);
}
Copier après la connexion

Cette fonction ne peut accepter que les types de Nombre ou ses sous-classes (par exemple, Integer, Double, Float).

Lower Bound (Lower Bound)

La limite inférieure spécifie que le type de données que la fonction peut accepter ou renvoyer doit être un supertype d'un type spécifié. Il est spécifié à l'aide du mot-clé super. Par exemple :

public <T super Number> void sumNumbers(List<T> numbers) {
   double sum = 0;
   for (T number : numbers) {
       sum += number.doubleValue();
   }
}
Copier après la connexion

Cette fonction peut accepter un nombre ou une liste de ses supertypes, tels que Liste ou Liste.

Cas pratique

Supposons que nous ayons une fonction qui compare deux nombres :

public static <T extends Comparable<T>> int compare(T obj1, T obj2) {
    return obj1.compareTo(obj2);
}
Copier après la connexion

Nous pouvons utiliser cette fonction pour comparer n'importe quel type qui implémente l'interface Comparable, par exemple :

int result = compare(10, 20); // result 为 -1
Copier après la connexion

Utilisation de méthodes

Utilisation de génériques Lorsque vous spécifiez des limites supérieure et inférieure, gardez les points suivants à l'esprit :

  • La limite supérieure spécifie que le type de données que la fonction peut gérer doit être un sous-type du type spécifié.
  • La limite inférieure spécifie que le type de données que la fonction peut gérer doit être un supertype du type spécifié.
  • Vous pouvez utiliser des limites supérieure et inférieure pour restreindre davantage les types de données acceptés ou renvoyés par une fonction.
  • L'utilisation de génériques peut améliorer la réutilisabilité et la sécurité du code.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal