¿Polimor-qué?

Supongamos que tenemos un metodo que devuelve una lista de SubCosa, subclase de Cosa. Como somos buena gente queremos usar Generics para hacer nuestro codigo un poco mas lindo.

public List<Subcosa> metodo() {}

Si en otro lado tenemos algo asi…

List< Cosa> cosas = metodo();

y compilamos.

 found   : java.util.List<SubCosa>

required: java.util.List<Cosa>

List<Cosa> cosas = metodo();

Consideremos el siguiente escenario
public void foo() { Cat[] cats = {new Cat(), new Cat()}; addAnimal(cats);  // no problem, send the Cat[] to the method}

Y el metodo addAnimal declarado de esta forma.

public void addAnimal(Animal[] animals) {  animals[0] = new Dog();  // Eeek! We just put a Dog                           // in a Cat array!}

Los arrays son medios tontos y nos dejan hacer esto. Sin embargo las colecciones con Generics NO.

No hay comentarios »

RSS feed de los comentarios de este post. TrackBack URI

Comentar

Captcha
Enter the letters you see above.

Entradas y comentarios feeds. 19 queries. 0.326 seconds.

57429 pages viewed, 105 today
27372 visits, 27 today
FireStats icon Powered by FireStats