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
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); }
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(); } }
Cette fonction peut accepter un nombre ou une liste de ses supertypes, tels que 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); }
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
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 :
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!