2016-06-13 18 views
1

我有在顯示預期輸出功能難「bookShow」驗證項目存在的列表給出了錯誤的結果

列表showlist =是節目列表,顯示時間和座位可用於每場演出的數量

字符串showName =在showName用戶已輸入

字符串SHOW_TIME =在showTimethe用戶已經輸入

INT noOfSeats =被席位數用戶已經輸入

如果用戶輸入的showName不屬於列表,我希望函數顯示「UnknownShowException」。

但無論我輸入的showName如何,它都會給我例外。即使showName出現在列表中,它仍然給我例外。

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

ShowName是一個字符串,Showlist是顯示對象的名單,所以當你在節目列表中搜索特定字符串你沒有因爲沒有show對象等於你的字符串。您必須將您的字符串與show對象中的show name屬性相匹配。 因此,如果顯示對象具有屬性「名稱」,以下將起作用

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); 
    } 
} 
    }