2014-12-05 29 views
0

我有一个错误在此代码java.util中。<>可以的Hashset不能转换为boolean

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中。 <>的Hashset不能转换为boolean, 什么是纠正这一目标的最佳途径。(所有的代码是不是在这里,但究竟什么是相关的)

+0

getGuest()调用没有参数是做什么的?你可能会摆脱它。你也可能想在'for'循环之外返回失败,而不是在循环之外。 – 2016-12-14 23:33:41

回答

0

是的,HashSet不是一个布尔值,不能转换为布尔型,常规for循环在中间部分(确定循环何时终止的部分)期望布尔表达式。

如果要遍历集合中的所有的值,可以使用增强的for循环:

for (Room room : occupiedRooms) 
{ 
    if(room.getRoomNo().equals(roomNo)) 
     return room; 
    getGuest(); 
    return "room " + roomNo + " is not occupied" ; 
} 

不知道有多少意义的for循环让,不过,因为它总是返回的东西在第一个room被测试之后,所以剩余的房间将不被检查。

+0

好的非常感谢你 – Fowlzy 2014-12-05 11:20:40

相关问题