Métodos estáticos y parámetros de tipo en la especificación del idioma Java
-
21-12-2019 - |
Pregunta
Leí en la JLS 7 la siguiente oración.
Es un error de tiempo de compilación para usar el nombre de un parámetro de tipo de cualquier circundante Declaración en el encabezado o cuerpo de un método de clase.
Por favor explique su significado.
Solución
significa que no puedes hacer
class Test<T> {
static void f(T a) {
}
}
tienes que hacer
class Test<T> {
static <T> void f(T a) {
}
}
Los tipos genéricos de un método estático son independientes de los tipos genéricos de la clase u otros métodos.
para que pueda incluso hacer algo como
class Test {
static <A, B, C> void f(A a, B b, C c) {
}
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow