我在此代码中有错误
public Hotel()
{
occupiedRooms = new HashSet<Room>();
PapersOrdered = new HashMap <String,ArrayList<String>>();
}
public String getGuest(String roomNo)
{
for (Room room; occupiedRooms;)
{
if(room.getRoomNo().equals(roomNo)) return room; getGuest();
return "room " + roomNo + " is not occupied" ;
}
}
并且占用的房间收到错误说java.util。&lt;&gt; Hashset无法转换为布尔值, 什么是纠正这个问题的最佳方法。(所有代码都不在这里,只是相关内容)
答案 0 :(得分:0)
是的,HashSet
不是布尔值,不能转换为布尔值,而常规for循环需要中间部分的布尔表达式(确定循环何时终止的部分)。
如果要迭代集合中的所有值,可以使用增强的for循环:
for (Room room : occupiedRooms)
{
if(room.getRoomNo().equals(roomNo))
return room;
getGuest();
return "room " + roomNo + " is not occupied" ;
}
不确定你的for循环有多大意义,因为它会在第一次room
测试后返回一些内容,因此不会检查其余的房间。