Tengo algunos problemas con un método que tiene un parámetro de lista tipeado, heredado de otra clase (tipeada).Método con lista tipada y herencia
Vamos a mantenerlo simple:
public class B<T> {
public void test(List<Integer> i) {
}
}
La clase B tiene una T inútil genérico, y test() quieren una lista de números enteros.
si hago:
public class A extends B {
// don't compile
@Override
public void test(List<Integer> i) {
}
}
me sale un "El método de ensayo (lista) de tipo A debe anular o poner en práctica un método supertipo" error, eso no debería suceder.
Pero eliminar el tipo de la lista funciona ... aunque no depende de la clase genérica.
public class A extends B {
// compile
@Override
public void test(List i) {
Y también la definición de los inútiles genérica a continuación para utilizar la lista mecanografiada
public class A extends B<String> {
// compile
@Override
public void test(List<Integer> i) {
Así que no tengo ni idea, la genérica de B debe tener ninguna influencia sobre el tipo de la lista de pruebas(). ¿Alguien tiene una idea de lo que está pasando?
Gracias
Creo que su respuesta es [aquí] (http://stackoverflow.com/a/502770/248082). – nobeh
Convencionalmente [capital V] 'Void' se usa para los parámetros genéricos que no desea usar. Por ejemplo, que usa 'java.security.PreivilegedAction' sin devolver un valor (devuelve' null' - es la única referencia 'Void' válida). –