for (Room r:RoomMap.roomList) {
System.out.println("for started");
if (name.equals(r.getRoomName())) {
// TODO 让房间内的用户强行退出房间(可选)
// 关闭房间
r.clear();
r.setOpen(false);
RoomMap.roomList.remove(r);
}
System.out.println("if closed");
}
System.out.println("for closed");
粗略一看,没有任何问题!一个循环判断而已嘛!name是一个String,Room是一个类代表一个房间。
但运行时候总是有错,而且只能运行到System.out.println("if closed");再往下的System.out.println("for closed");则打印不出。十分诡异!
解决方法是:在RoomMap.roomList.remove(r);后面加break;
但我还是不明白为什么?
没有评论:
发表评论