首先,抱歉英语不好-
我只想将与“Clientes”中的“codCli”具有相同代码的对象从“Ventas”移动到“Historico”,这是我的代码:
public static void Eliminar_Cliente(){
System.out.println("Que cliente quieres eliminar? (Introduce el código de cliente)");
int cliE=(sc.nextInt()-1);
Cliente clienteBuscado=null;
for (Cliente cliente : cli) {
if(cliente.codCli==cliE) clienteBuscado=cliente;
}
if(clienteBuscado!=null)
{
ArrayList<Ventas> ventaAux=new ArrayList();
for (Ventas venta : vent) {
System.out.println("asddsa");
if (venta.cliente==clienteBuscado.codCli){
Historico h = new Historico(venta);
his.add(h);
ventaAux.add(venta);
}
}
if(!ventaAux.isEmpty())
{
for (Ventas ventas : ventaAux) {
vent.remove(ventas);
}
}
}
}
但输出绝对没有任何内容,它甚至没有进入 Ventas' 的每个循环。
有什么帮助吗?
最佳答案
Collection
vent
很可能是空的。确保在调用 Eliminar_Cliente
之前正确填充集合。
此外,如果 clienteBuscado
为 null
,则永远不会进入调用 for
循环的 if
语句 block -> 确保为 clienteBuscado
分配了一个值。
更根本的是确保您确实调用了Elimar_Cliente
。
旁白:Java 命名约定使用 camelCase 作为方法名称,例如 eliminarCliente
关于java - 使用 foreach 循环数组列表不会执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16963543/