Maison  >  Article  >  Java  >  En savoir plus sur les génériques Java

En savoir plus sur les génériques Java

青灯夜游
青灯夜游avant
2019-11-27 18:11:471738parcourir

En savoir plus sur les génériques Java

Concept : Les génériques, c'est-à-dire les « types paramétrés ». Il s'agit de paramétrer le type spécifique d'origine, similaire aux paramètres variables de la méthode. À ce stade, le type est également défini comme un formulaire de paramètre (qui peut être appelé paramètre de type), puis le type spécifique (type paramètre réel). ) est transmis lors de l'utilisation/de l'appel de ).

Essence : Afin de paramétrer les types (contrôler les types spécifiques de restrictions de paramètres à travers différents types spécifiés par les génériques sans créer de nouveaux types). C'est-à-dire que lors de l'utilisation de génériques, le type de données de l'opération est spécifié en tant que paramètre. Ce type de paramètre peut être utilisé dans les classes, les interfaces et les méthodes, et est appelé respectivement classes génériques, interfaces génériques et méthodes génériques. .

Trois façons d'utiliser : Classe générique, interface générique, méthode générique

Tapez le caractère générique :

1 ) Tapez les caractères génériques sont généralement utilisés ? au lieu de paramètres de type concret. Par exemple, List est logiquement la classe parent de List, List et de tous les List.

2) Le caractère générique de type est défini sous la forme de Liste. Cette définition signifie que la valeur générique du caractère générique accepte Number et ses types de sous-classes sous-jacentes.

Les génériques fournissent un mécanisme de surveillance de la sécurité des types au moment de la compilation, qui permet aux programmeurs de détecter les types illégaux au moment de la compilation. 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.

1. Méthode générique

Vous pouvez écrire une méthode générique qui peut recevoir différents types de paramètres lorsqu'elle est appelée. 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.

// 泛型方法 printArray 
     public static < E > void printArray( E[] inputArray )
     { 
         for ( E element : inputArray ){ 
             System.out.printf( "%s ", element );
         }
     }

1) indique que le type représenté par le caractère générique est une sous-classe du type T.

2) signifie que le type représenté par le caractère générique est la classe parent de 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 déclaration de paramètre de type est ajouté après la partie 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 qui spécifie 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.

public class Box<T> {
     private T t;
     public void add(T t) {
         this.t = t;
     }
     public T get() {
         return t;
 }

3. 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 bytecode 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 la compilation. Ce que la JVM voit, c'est uniquement 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 fois consiste à trouver la classe spécifique utilisée pour remplacer le paramètre de type. Cette classe spécifique est généralement Object. Si une limite supérieure pour les paramètres de type est spécifiée, cette limite supérieure est utilisée pour remplacer tous les paramètres de type dans le code par des classes concrètes.

Cet article provient de la colonne Introduction à Java, bienvenue pour apprendre !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer