我很难向“bookShow”函数显示预期的输出
列表showlist =是节目列表,显示时间和每个节目可用的座位数
String showName =是用户输入的showName
String show_time =是用户输入的showTime
int noOfSeats =是用户输入的席位数
如果用户输入的showName不属于列表,我希望函数显示“UnknownShowException”。
但无论我输入什么作为showName,它都给了我异常。即使showName出现在List中,它仍然会给我异常。
public void bookShow(List<Show> showList, String showName, String show_time, int noOfSeats)
throws SeatsNotAvailableException, UnknownShowException, InvaildSeatNumberException {
// TODO Auto-generated method stub
List<Show> list=showList;
Iterator<Show> itr= list.iterator();
try{
while(itr.hasNext()){
if(noOfSeats<0){
throw new InvaildSeatNumberException();
}
if(noOfSeats>itr.next().getSeatsAvailable()){
throw new SeatsNotAvailableException();
}
if(!(list.contains(showName))){
throw new UnknownShowException();
}
}
}catch(Exception e){
System.out.println("" + e);
}
}
}
请告诉我哪里出错......
答案 0 :(得分:0)
ShowName是一个字符串,Showlist是Show Object的列表,所以当您搜索节目列表中的特定字符串时,您将获得none,因为没有show object等于您的字符串。您必须将字符串与show对象中的show name属性相匹配。 因此,如果显示对象具有属性&#34;名称&#34;以下将起作用
public void bookShow(List<Show> showList, String showName, String show_time, int noOfSeats)
throws SeatsNotAvailableException, UnknownShowException, InvaildSeatNumberException {
// TODO Auto-generated method stub
List<Show> list=showList;
Iterator<Show> itr= list.iterator();
try{
while(itr.hasNext()){
if(noOfSeats<0){
throw new InvaildSeatNumberException();
}
if(noOfSeats>itr.next().getSeatsAvailable()){
throw new SeatsNotAvailableException();
}
if(!(list.Any(x=>x.Name == showName))){
throw new UnknownShowException();
}
}
}catch(Exception e){
System.out.println("" + e);
}
}
}