Maison Java Javacommencer Introduction détaillée aux génériques Java

Introduction détaillée aux génériques Java

Nov 27, 2019 pm 04:30 PM
java 泛型

Introduction détaillée aux génériques Java

Java Generics

Les génériques fournissent un mécanisme de détection de sécurité de type au moment de la compilation qui permet aux programmeurs de détecter le type illégal. L'essence des génériques est un type paramétré, ce qui signifie que le type de données sur lequel l'opération est effectuée est spécifié en tant que paramètre.

Par exemple, si nous voulons écrire une méthode de tri capable de trier un tableau d'entiers, un tableau de chaînes ou même tout autre type de tableau, nous pouvons utiliser des génériques Java.

Recommandation de vidéo d'apprentissage en ligne gratuite : Vidéo en ligne Java

Méthode générique

Vous pouvez écrire une méthode générique, qui peut recevoir différents types de paramètres lorsqu’il est appelé. En fonction des types de paramètres transmis à la méthode générique, le compilateur gère chaque appel de méthode de manière appropriée.

Par exemple :

public static < E > void printArray( E[] inputArray ){
	for ( E element : inputArray ){
		System.out.printf( "%s ", element );
	}
}
Copier après la connexion

Bordure générique

(1)<? Sous-classe T.

(2)<? super T> indique que le type représenté par le caractère générique est la classe parent du type T.

2. Classe générique

La déclaration d'une classe générique est similaire à la déclaration d'une classe non générique, sauf qu'une partie de déclaration de paramètre de type est ajoutée après le nom de la classe. Comme les méthodes génériques, la partie déclaration des paramètres de type d’une classe générique contient également un ou plusieurs paramètres de type, séparés par des virgules.

Un paramètre générique, également appelé variable de type, est un identifiant utilisé pour spécifier le nom d'un type générique. Parce qu'elles acceptent un ou plusieurs paramètres, ces classes sont appelées classes paramétrées ou types paramétrés.

Par exemple :

public class Box&lt;T&gt; {
private T t;
public void add(T t) {
this.t = t;
}
public T get() {
return t;
}
}
Copier après la connexion

3. Type générique ?

Le type générique utilise généralement ? Par exemple, List<?> est logiquement la classe parent de List, List et de tous les paramètres réels de type List<concrete>.

4. Effacement de type

Les génériques en Java sont essentiellement implémentés au niveau du compilateur. Les informations de type dans les génériques ne sont pas incluses dans le byte code Java généré. Les paramètres de type ajoutés lors de l'utilisation de génériques seront supprimés par le compilateur lors de la compilation. Ce processus est appelé effacement de type.

Les types tels que List et List définis dans le code deviendront List après compilation. Tout ce que la JVM voit, c'est la liste, et les informations de type attachées par les génériques sont invisibles pour la JVM.

Le processus de base d'effacement de type est également relativement simple. La première étape consiste à trouver la classe spécifique utilisée pour remplacer les paramètres de type. Cette classe concrète est généralement Object. Si une limite supérieure pour un paramètre de type est spécifiée, cette limite supérieure est utilisée. Remplacez tous les paramètres de type dans le code par des classes spécifiques.

Tutoriels d'articles liés à Java : Introduction au langage Java

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!

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

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Racine carrée en Java Racine carrée en Java Aug 30, 2024 pm 04:26 PM

Racine carrée en Java

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Nombre parfait en Java

Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

Générateur de nombres aléatoires en Java

Numéro Armstrong en Java Numéro Armstrong en Java Aug 30, 2024 pm 04:26 PM

Numéro Armstrong en Java

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Weka en Java

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Questions d'entretien chez Java Spring

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Break or Return of Java 8 Stream Forach?

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Numéro de Smith en Java

See all articles