jueves, 26 de noviembre de 2009

Tres preguntas de colecciones y genericos.

Ahora tengo tres preguntas que aunque cortas me parecen claves saber para la programación con Genéricos y Colecciones.

1.- Cuál es el resultado de compilar y ejecutar el siguiente programa?


[A].- 15.09
        1.0
        1.0
        2.0
[B].- 15.09
        1.0
        2.0
[C].- 15.09
        1
        1
        2
[D].- 15.09
        1.0
        1
        2
[E].- Error de compilacion

2.- Qué opción se debe colocar en la línea 6 donde aparece XXXX (las 4 xs) para que el programa compile?



[A].- Object[ ]
[B].- Integer[ ]
[C].- int[ ]
[D].- cualquiera de las anteriores
[E].- A o B
[F].- B o C


3.- Cuál es el resultado de compilar y ejecutar el siguiente código?




[A].- truetrue
[B].- truefalse
[C].- falsetrue
[D].- falsefalse
[E].- Error de compilación
[F].- Exception en tiempo de ejecución

RESPUESTAS.-
1.-[E] Hay un error de compilación en la linea 14 debido a que no puedo asignar un objeto ArrayList<Double> a uno ArrayList<Object> ya que en genericos no hay relación de superclase y subclase, es decir se comportan como objetos distintos. Si se quisiera realizar esta operación puede cambiar la línea 5 de List<Object> a List<?> (Comodín) para mas información consulte el artículo de Genéricos Aquí

2.-[A] el método toArray() de List devuelve un arreglo de tipo Object[ ].

3.-[E] Si se desea saber si un objeto TreeSet o Collection debe usarse las colecciones pero sin los tipos de datos parametrizado, algo como:
coleccion instanceof TreeSet
coleccion instanceof Collection
No se puede saber si es una instancia de un genérico parametrizado.

No hay comentarios: