Bases des génériques (T, inférence)
Découvrez les paramètres de type génériques T , leur rôle dans la sécurité à la compilation et la façon dont l’opérateur diamant infère les types.
Bases des génériques (T, inférence) est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 3 leçons au total.
Pourquoi les génériques ?
Les génériques ajoutent des types aux conteneurs et aux utilitaires afin que le compilateur puisse vous protéger. Avantages :
- Sécurité des types — aucun mélange accidentel de types.
- Aucune conversion de type — un code plus clair.
- Réutilisabilité — une seule classe fonctionne avec de nombreux types.
Qu’est-ce que T ?
T (paramètre de type) est un emplacement réservé pour un type réel. Lorsque vous écrivez Box<String>, le compilateur considère T comme String dans cette utilisation.
Code : Box<T>
Box<T> : lorsque nous remplaçons T par String, seul String est accepté. Un type incorrect provoque une erreur de compilation ; aucune surprise à l’exécution.
public class Main {
// A tiny generic container
static class Box<T> {
private T value;
void set(T v) { value = v; }
T get() { return value; }
}
public static void main(String[] args) {
Box<String> bs = new Box<String>(); // T becomes String
bs.set("hello");
System.out.println(bs.get()); // no cast needed
// Box<Integer> bi = new Box<Integer>();
// bi.set("oops"); // would not compile: String is not Integer
}
}
Code : inférence avec le diamant
<> (diamant) permet au compilateur de déduire le type situé à droite. S’il est incompatible avec le type à gauche, la compilation échoue ; cela renforce la sécurité.
public class Main {
static class Box<T> {
private T value;
Box() {}
Box(T v) { value = v; }
T get() { return value; }
}
public static void main(String[] args) {
// Type on the left, diamond on the right — compiler infers T
Box<Integer> a = new Box<>(123);
Box<String> b = new Box<>("hi");
System.out.println(a.get() + 1); // 124
System.out.println(b.get().toUpperCase());
}
}
Paramètres de type bornés
Bornes : certaines méthodes génériques exigent une capacité telle que Comparable. Par exemple, <T extends Comparable<T>> signifie que T doit être comparable.
Code : méthode générique bornée
Méthode générique : <T extends Comparable<T>>. Integer et String sont compatibles, car tous deux implémentent Comparable.
public class Main {
// Generic method: works for any Comparable type
static <T extends Comparable<T>> T min(T a, T b) {
return (a.compareTo(b) <= 0) ? a : b;
}
public static void main(String[] args) {
System.out.println(min(3, 7)); // Integer
System.out.println(min("apple", "banana")); // String (lexicographic)
}
}
Vérification des bases des génériques
Vérification rapide : Quel est le principal avantage d’utiliser des génériques comme Box<String> ?
Récapitulatif
Récapitulatif : T est un emplacement réservé ; son type est déduit grâce au diamant. Les bornes (extends Comparable) permettent de rendre les méthodes génériques sûres et puissantes.
Questions Fréquemment Posées
La leçon « Bases des génériques (T, inférence) » est-elle gratuite ?
Oui — le texte complet de « Bases des génériques (T, inférence) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 3 leçons au total.
Qu'est-ce que j'apprendrai dans « Bases des génériques (T, inférence) » ?
Découvrez les paramètres de type génériques T , leur rôle dans la sécurité à la compilation et la façon dont l’opérateur diamant infère les types. Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Java Academy ?
Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 3.
Combien de temps prend la leçon « Bases des génériques (T, inférence) » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?
Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Les interfaces en pratique
- Bases des génériques (T, inférence)
- Méthodes et classes génériques