Maison >Java >javaDidacticiel >Quelles sont les limites supérieure et inférieure des fonctions génériques Java ? comment utiliser?
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 7bac7e57b1a28a76cdacdabd991c2663. 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 8991fee22ef165e6bc8a2922b920a06c. L'utilisation de génériques améliore la réutilisabilité et la sécurité du code.
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 Listeae1662832d343b27c0357e2133201ef5 ou Listec0f559cc8d56b43654fcbe4aa9df7b4a.
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!