Buenas tardes,
llevo horas batallando con esta parte del código que soy incapaz de realizar.
EJERCICIO
Amplía el código del programa Java que planteamos como ejercicio en la entrega CU00687 de este curso, relativo a la gestión de una empresa agroalimentaria, teniendo en cuenta que la empresa gestiona envíos a través de diferentes medios, y un envío puede contener cierto número de productos frescos, refrigerados o congelados. Añade al código:
a) Una clase EnvioDeProductos que represente un envío de productos como colección de objetos que admite el polimorfismo.
b) Crear una clase testHerencia4 con el método main donde se creen: dos productos frescos, tres productos refrigerados y cinco productos congelados (2 de ellos congelados por agua, otros 2 por agua y 1 por nitrógeno). Crear un envío que represente la agrupación de los anteriores productos. Mostrar por pantalla la información del número de productos que componen el envío y recorrer los productos del envío usando iterator para mostrar la información (valor de los atributos) de cada uno de ellos.
He usado el mismo código que en TestHerencia3 para crear los objetos y se crean correctamente y los añado a la lista de EnvioDeProductos.
En envío de productos he generado el siguiente código:
public class EnvioDeProductos
{
private ArrayList <Productos> listaEnvios;
public EnvioDeProductos(){
listaEnvios = new ArrayList<Productos>();
}
public void setListaEnvios(Productos valorProducto){
listaEnvios.add(valorProducto);
}
public Productos getListaEnvios(int valorIndice){
return listaEnvios.get(valorIndice);
}
public int tamañoLista(){ return listaEnvios.size();}
public void mostrarProductos(){
Iterator copiaEnvio = listaEnvios.iterator();
while(copiaEnvio.hasNext()){
System.out.println(copiaEnvio.next());
}
}
}
En mostrarProductos soy incapaz de mostrar los productos usando iterator como indica el ejercicio. Al realizar copiaEnvio.next() devuelve un E(elemento) por lo que devuelve el puntero, no el objeto en si.
No me permite realizar copiaEnvio.next().getFechaDeCaducidad() puesto que indica que no encuentra el método.
Tampoco puedo realizar:
Productos producto1 = new Producto();
producto1 = copiaEnvio.next()
Me indica incompatibilidad de tipos. ¿Alguna idea?
Muchas gracias, atentamente.