Méthodes statiques et paramètres de type dans la spécification de langue Java
-
21-12-2019 - |
Question
J'ai lu dans la JLS 7 la phrase suivante.
C'est une erreur de compilation pour utiliser le nom d'un paramètre de type de tout environnement entourant. Déclaration dans l'en-tête ou le corps d'une méthode de classe.
S'il vous plaît expliquer sa signification.
La solution
Cela signifie que vous ne pouvez pas faire
class Test<T> {
static void f(T a) {
}
}
vous devez faire
class Test<T> {
static <T> void f(T a) {
}
}
Les types génériques d'une méthode statique sont indépendants des types génériques de la classe ou d'autres méthodes.
Vous pouvez même faire quelque chose comme
class Test {
static <A, B, C> void f(A a, B b, C c) {
}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow