Hola!!
La
documentacion de java dice:
Cita: Esta excepción puede ser lanzada por los métodos que se han detectado modificaciones simultáneas de un objeto cuando tal modificación no está permitido.
...
Por ejemplo, si un hilo modifica una colección directamente mientras se está interactuando sobre la colección con un iterador no-rápido, el iterador lanzarán esta excepción.
Eso quiere decir que:
Código java:
Ver originalpublic void cambiarClienteAVIP
(String nifCliente
) {
int indice = 0;
for(Cliente clienteCambiado : clientes) {
if (nifCliente.equals(clienteCambiado.getNif())) {
ClienteVIP nuevoCliente = new ClienteVIP(clienteCambiado.getNombre(), clienteCambiado.getApellidos(),
clienteCambiado.getNif(), clienteCambiado.getSexo(), clienteCambiado.getAñoDeNacimiento(),
clienteCambiado.getNumeroDeCliente(), clienteCambiado.getAñoDeAlta());
clientes.remove(clienteCambiado); <<-- Aqui intentas eliminar un objeto que esta siendo usado
clientes.add(nuevoCliente);
indice++;
}
}
if (indice == 0) {
System.
out.
println("El NIF indicado no corresponde a ningún cliente"); }
}
Se me ocurren dos posibles soluciones:
1) puedes clonar tu objeto haciendo algo asi:
Código java:
Ver originalCliente clienteTemp = clienteCambiado.clone();
clientes.remove(clienteTemp);
2) Podrias hacer unos castings, si dices que ClientesVIP es una subclase de Clientes, intenta hacer algo asi:
Código java:
Ver originalpublic void cambiarClienteAVIP
(String nifCliente
) {
int indice = 0;
for(Cliente clienteCambiado : clientes) {
if (nifCliente.equals(clienteCambiado.getNif())) {
clienteCambiado=(ClienteVIP)clienteCambiado;
//aqui solo agregarias los valores de los atributos que cambian
indice++;
}
}
if (indice == 0) {
System.
out.
println("El NIF indicado no corresponde a ningún cliente"); }
}
Ojala te sirva esto, saludos