Les fonctions génériques améliorent la réutilisabilité et la sécurité de type des fonctions en utilisant des paramètres de type, vous permettant de définir des fonctions qui acceptent des paramètres de différents types. Vous pouvez spécifier des limites sur les paramètres de type pour garantir qu'ils sous-classent un type spécifique ou implémentent une interface spécifique. Le compilateur peut généralement déduire les paramètres de type et vous n'avez pas besoin de les déclarer explicitement si vous spécifiez le type réel du paramètre sur le site d'appel. Les fonctions génériques peuvent être utilisées pour résoudre divers problèmes. Par exemple, une fonction générique peut trouver le plus grand élément d'une liste, quel que soit le type des éléments de la liste, à condition qu'elles implémentent l'interface Comparable.
Atteindre la sécurité des types avec les génériques de fonctions Java
Les génériques de fonctions sont un mécanisme puissant qui vous permet de définir des fonctions qui acceptent des paramètres de différents types. Cela améliore la réutilisabilité du code et la sécurité des types.
Syntaxe
Utilisez des crochets angulaires (< et >) pour spécifier les paramètres de type :
<T> T max(T a, T b) { // ... }
Limites de type génériques
Vous pouvez spécifier des limites sur les paramètres de type pour vous assurer qu'il s'agit de sous-classes d'un type spécifique ou Implémente une interface spécifique :
<T extends Number> T sum(List<T> numbers) { // ... }
Inférence de type
Le compilateur peut généralement déduire les paramètres de type. Vous n'êtes pas obligé de déclarer explicitement le paramètre type si vous spécifiez le type réel du paramètre sur le site d'appel :
Integer result = max(1, 2); // 编译器推断类型是 Integer
Un exemple pratique
Supposons que vous souhaitiez écrire une fonction pour trouver le plus grand élément d'une liste :
<T extends Comparable<T>> T findMax(List<T> list) { if (list.isEmpty()) { throw new IllegalArgumentException("List is empty"); } T max = list.get(0); for (T element : list) { if (element.compareTo(max) > 0) { max = element; } } return max; }
Cette fonction générique accepte tout type qui implémente l'interface Comparable
, garantissant qu'elle peut comparer les éléments et trouver le plus grand élément.
Vous pouvez utiliser cette fonction dans le code suivant :
List<Integer> numbers = List.of(1, 2, 3, 4, 5); Integer maxNumber = findMax(numbers); // 类型推断为 Integer List<String> words = List.of("apple", "banana", "cherry"); String maxWord = findMax(words); // 类型推断为 String
En utilisant des fonctions génériques, vous assurez la polyvalence de votre code et améliorez la sécurité des types. Cela évite les erreurs de type et rend votre code plus robuste.
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!