Maison > Java > javaDidacticiel > le corps du texte

Mécanisme d'implémentation des génériques en Java

WBOY
Libérer: 2024-04-12 18:09:01
original
1042 Les gens l'ont consulté

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.

Java 中泛型的实现机制

Mécanisme d'implémentation des génériques en Java

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.

Effacement de type

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.

Wild Cards

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); // 可打印字符串类型列表
Copier après la connexion

Bounded Generics

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); // 可在整数类型上使用该方法
Copier après la connexion

实战案例

假设您要创建一个可以存储任何类型数据的哈希表。您可以使用 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
Copier après la connexion
Exemple pratique

Supposons que vous souhaitiez créer une table de hachage pouvant stocker tout type de données. Vous pouvez utiliser la classe 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!

É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