Estuve analizando el código de guardado de Cuentas y mediante la misma lógica cambiamos un poco el código de tal forma que nos acepte cualquier tipo de objeto como era el reto en sí, aquí el código:
GuardadoDeObjetos:
package co.com.bytebank.banco.modelo;
public class GuardadorDeObjetos {
private Object[] referencias;
private int posicionLibre;
public GuardadorDeObjetos() {
this.referencias = new Object[10];
this.posicionLibre = 0;
}
public void adicionar(Object ref) {
referencias[this.posicionLibre] = ref;
this.posicionLibre++;
}
public int getCantidadDeElementos() {
return this.posicionLibre;
}
public Object getReferencia(int pos) {
return this.referencias[pos];
}
}
TestGuardadoDeObjetos:
package co.com.bytebank.banco.test;
import java.util.Iterator;
import co.com.bytebank.banco.modelo.Cliente; import co.com.bytebank.banco.modelo.Cuenta; import co.com.bytebank.banco.modelo.CuentaAhorros; import co.com.bytebank.banco.modelo.GuardadorDeObjetos;
public class TestGuardadorDeObjetos {
public static void main(String[] args) {
GuardadorDeObjetos guardar = new GuardadorDeObjetos();
Cliente cl = new Cliente();
guardar.adicionar(cl);
Cuenta ca = new CuentaAhorros(01, 11);
guardar.adicionar(ca);
Object val1 = guardar.getReferencia(0);
Object val2 = guardar.getReferencia(1);
}
}