Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: paramonso en 05 de Octubre 2018, 09:35

Título: uses unchecked or unsafe operations. Recompile with -Xlint.unchecked fo CU00678B
Publicado por: paramonso en 05 de Octubre 2018, 09:35
Hola. Dejo el ejercicio CU00678B del tutorial pdf de programación java.
Concepto definición de polimorfismo en Java. ¿Qué es el polimorfismo? .

Me he extendido un poco mas de la cuenta en el código porque no entendía bien el funcionamiento del ArrayList Polimorfo.
Gracias al ejercicio que dejo SantiagoArg pude aclararme de que va el tema ya que soy un poco corto de entendederas.

Pongo alguna presentación en pantalla utilizando contadores para poder ver el funcionamiento del Iterator ya que este no utiliza contadores (que se vean) y si hay alguien que no se aclare  y le puede servir aquí esta.

Código: [Seleccionar]
import java.util.*;
public class TestPolimorfismo {
    public static void main (String[] Args) {
        ArrayList<Set> lista = new ArrayList<Set>(); //Declaración del ArrayList lista tipo Set
        Set<String> setCadena = new HashSet<String>(); // Creación del objeto tipo HashSet con contenido Strings
        Set<Integer> setEnteros = new TreeSet<Integer>();// Creación del objeto tipo TreeSet con contenido Integer
        //Llenar ArrayList String
        setCadena.add("sol");
        setCadena.add("luna");
        setCadena.add("saturno");
        //Llenar ArrayList Integer
        setEnteros.add(2);
        setEnteros.add(8);
        setEnteros.add(5);
        //Presentar por pantalla el contenido del HashSet setCadena.
        Iterator enumCadena = setCadena.iterator(); // Crear el iterador para enumCadena
        System.out.print("ARRAYS Y POLIMORFISMO\n\n" );
        System.out.print("Elementos en setCadena (String)\n" );
        System.out.print("Item en enumCadena() : ");
        while (enumCadena.hasNext()) {
            System.out.print( enumCadena.next()+ ";");
        }

        //Presentar por pantalla el contenido del TreeeSet setEnteros.
        Iterator  enumEnteros = setEnteros.iterator(); // Crear el iterador para enumEnteros
        System.out.print("\nElementos en setEnteros (Integer)\n" );
        System.out.print("Item en enumEnteros() : ");
        while (enumEnteros.hasNext()) {
            System.out.print( enumEnteros.next()+"; ");

        }
        // Añadir al ArrayList lista el HashSet (El String) y el TreeSet (El Integer).
        lista.add(setCadena);lista.add(setEnteros);//Polimorfismo Arraylist con diferentes tipos de objetos
       
        System.out.print("\n\nPRESENTAR LISTA CON FOR EXTENDIDO e Iterator \n");

        int s=0;
        for (Set listaDeLista : lista) {
            Iterator<Set> sublistaTmp =listaDeLista.iterator();
            System.out.println("\nComponente ("+s+") de la lista "+listaDeLista);
            int n=0;
            while (sublistaTmp.hasNext()){
                System.out.println("Componente ("+s+") de lista  Componente Iterator<Set> ("+n+") : "+sublistaTmp.next());
                n++;
            }
            s++;
        }
    }
}

Espero que este todo bien.
Gracias.
Un saludo. ;)
Título: Re:uses unchecked or unsafe operations. Recompile with -Xlint.unchecked fo CU00678B
Publicado por: Ogramar en 04 de Agosto 2019, 23:28
Buenas, para quien revise este hilo, el código funciona correctamente. Como único detalle a comentar, en el código se usa un for extendido Java y dentro de este, un iterator. El ejercicio indicaba "e) Usa iteradores para recorrer los elementos del ArrayList y recorrer el contenido de cada uno de los elementos y mostrar este contenido por pantalla. Por pantalla deberás obtener “sol”, “luna”, “saturno”, 8, 5, 2."

Puede verse una solución donde sólo se usan iteradores en https://aprenderaprogramar.com/foros/index.php?topic=2384.0

Al compilar aparece el mensaje "Warnings from last compilation ... uses unchecked or unsafe operations. Recompile with -Xlint.unchecked for details pero en este caso no veo que tenga trascendencia, el manejo de tipos es correcto.

Salu2