Les génériques Java utilisent la technologie d'effacement de type pour éliminer les informations de type au moment de l'exécution et conserver les informations structurelles. Il utilise des caractères génériques pour représenter n'importe quel type et limite la portée du type via des génériques délimitants. Grâce à l'effacement de type, les génériques augmentent la réutilisabilité et la flexibilité du code, réduisant ainsi les frais généraux et le potentiel d'erreur.
Les génériques sont une fonctionnalité puissante du langage de programmation Java qui vous permet de créer des classes et des méthodes pouvant fonctionner sur différents types de données. Cela améliore la réutilisabilité et la flexibilité du code.
L'implémentation des génériques en Java repose sur la technologie effacement de type. Cela signifie que lors de la compilation du code Java, le compilateur efface les informations de type générique. Seules les informations structurelles du type générique sont conservées, comme le nom et le nombre de paramètres du type.
Cette approche permet d'accéder aux informations de type générique au moment de l'exécution sans créer de problèmes de surcharge ou de performances supplémentaires.
Le Wildcard en Java est un type spécial de type générique qui vous permet de spécifier un espace réservé qui peut correspondre à n'importe quel type. Les caractères génériques sont représentés par des points d'interrogation (?).
Par exemple, la méthode suivante acceptera une liste de n'importe quel type :
public static <T> void printList(List<T> list) { for (T element : list) { System.out.println(element); } } List<String> strList = List.of("a", "b", "c"); printList(strList); // 可打印字符串类型列表
Bounded Genericsvous permet de limiter la portée d'un type générique. Vous pouvez spécifier un type de limite et tous les types acceptés doivent être ce type ou sa sous-classe ou interface.
Par exemple, la méthode suivante acceptera tout type qui implémente l'interface Comparable
: Comparable
接口的类型:
public static <T extends Comparable<T>> T max(T a, T b) { return a.compareTo(b) > 0 ? a : b; } Integer maxInt = max(10, 20); // 可在整数类型上使用该方法
假设您要创建一个可以存储任何类型数据的哈希表。您可以使用 HashMap<K, V>
类,其中 K
是密钥类型,V
Map<String, Integer> studentAges = new HashMap<>(); studentAges.put("John", 20); studentAges.put("Mary", 22); System.out.println(studentAges.get("John")); // 输出:20
HashMap<K, V>
, où K
est le type de clé et V
est le type de valeur : 🎜rrreee🎜Generics autorisé Vous pouvez facilement créer des programmes qui fonctionnent avec différents types de données. Cela augmente la réutilisabilité du code, la flexibilité et réduit le risque d’erreurs. 🎜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!