今天写springboot controller接口时遇到一个很奇怪的问题(关于List的remove方法)
由于这是我的第一篇博客,有不好的地方麻烦指出谢谢!
先贴代码:
@RequestMapping("addOrder")
public Map updateRoom(@RequestBody Order order) {
System.out.println("123");
//1为步入单 。 2为预定单
//在这里我用了Integer设定为List.remove的index
Integer x = order.getOrderRoomCount();
if (order.getOrderTypeId() == 1){
for (int i=order.getOrderRoomCount() - 1;i <order.getOrderRoom().size();i++){
order.getOrderRoom().remove(i);
}
for (int i=order.getOrderNumber() - 1;i <order.getCustomer().size();i++){
order.getCustomer().remove(i);
}
}else {
for (int i=0;i <5;i++){
if (i+1 > order.getOrderRoomCount()){
//这里是出问题的地方。我的remove执行后,size没有改变,依然还是原来的值
order.getOrderRoom().remove(x);
}
}
}
Map map = new HashMap();
map.put("code",200);
map.put("message","更新成功");
return map;
}```
后面发现 将Integer x = order.getOrderRoomCount(); 修改为
int x = order.getOrderRoomCount();
代码便可正常运行。