Java — Méthode static générique
Les méthodes static peuvent être génériques, même si la classe ne l’est pas.
1. Idée simple
Une méthode static peut définir son propre type générique
➡️ indépendamment de la classe
2. Exemple
public class Utils {
public static <T> void test(T t) {
System.out.println(t);
}
}
ici :
<T>est défini au niveau de la méthode- fonctionne avec n’importe quel type
Utilisation
Utils.test("hello");
Utils.test(123);
3. Pourquoi ça marche ?
une méthode static :
- n’a pas accès au type générique de la classe
- doit définir son propre
<T>
4. Piège classique
class Box<T> {
static void test(T t) {} // ❌ erreur
}
Pourquoi ?
Tappartient à la classe- une méthode
staticne peut pas y accéder
Solution
class Box<T> {
static <T> void test(T t) {} // ✔️ OK
}
on redéfinit <T> au niveau méthode
5. À retenir
static+ générique = ✔️ possible- mais nécessite déclaration
<T>dans la méthode - indépendant de la classe
6. Questions classiques
Q1
une méthode static peut être générique ? Oui
Q2
peut-elle utiliser le <T> de la classe ?
Non
Q3
solution ?
définir <T> dans la méthode
7. À retenir (version rapide)
- ✔️
public static <T> void test(T t) - ❌ utiliser
<T>de la classe
🧾 En résumé
- les méthodes static peuvent être génériques
- elles doivent déclarer leur propre type
- elles sont indépendantes de la classe
“Static methods can be generic independently of the class.”