2017-03-08 61 views
0

我正在使用駕駛執照爲汽車租賃課程發放汽車,並將汽車類型用作我的方法的輸入參數。因爲我使用的是一個界面,所以我必須根據駕駛員的年齡和他們獲得許可證的時間來發放大型和小型汽車。例如:對於一輛大型汽車,他至少需要23歲,並有4年的駕駛經驗。我被困在如何檢查司機將被髮出的車型和隨後的年齡檢查。我的代碼有點混亂,但我真的可以使用一些幫助,因爲我無法在邏輯上推進。下面是我的方法。使用if語句比較多個對象java

public CarInterface issueCar(DrivingLicence aLicence, CarType typeOfCar) { 
    final boolean isLicenceFull = drivingLicence.getLicenceStatus(); 

    final Optional<CarInterface> optionalCar = availableCars.stream() 
      .filter(car -> typeOfCar == car.getType()) 
      .findAny(); 

    final CarInterface car = optionalCar.orElseThrow(() -> new RuntimeException("All cars of type " + typeOfCar + " have been rented")); 
     if(aLicence.getLicenceStatus() ==true){ 
      if(!rentals.containsKey(aLicence)){ 
       if(typeOfCar.equals(optionalCar)){ 


       } 
      } 
     } 
+0

意味着你想,如果要添加的所有條件,或者你想添加multipal驗證一個接一個。 –

+0

我想多個驗證一個 – Jazztheman

+0

你可以通過使用if else來做到這一點。 –

回答

0

您可以通過使用ifelse做到這一點。

public CarInterface issueCar(DrivingLicence aLicence, CarType typeOfCar) { 
     final boolean isLicenceFull = drivingLicence.getLicenceStatus(); 

     final Optional<CarInterface> optionalCar = availableCars.stream() 
       .filter(car -> typeOfCar == car.getType()) 
       .findAny(); 

     final CarInterface car = optionalCar.orElseThrow(() -> new RuntimeException("All cars of type " + typeOfCar + " have been rented")); 
     if(aLicence.getLicenceStatus() ==true){ 
      if(!rentals.containsKey(aLicence)){ 

      }else if(typeOfCar.equals(optionalCar)){ 

      } 
     } 
} 

如果...否則,如果... else語句

if語句可以跟着一個可選否則,如果...否則 聲明,這對測試非常有用各種條件使用 single if ... else if語句。

當使用IF ... ELSE的if..else語句,有幾點要保持 記 -

的,如果可以有零或一個人的,它一定要來後,如果的任何其他 。

一個if可以有零到其他許多if,它們必須在 else之前。

一旦成功,其餘的其他if或其他的 將被測試。

0

如果你只會發出一個大的汽車,如果這兩個條件適用,那麼你就需要這樣的事情:

if(driver.getAge() > 23 && license.getPeriod() > 4) { 
    // issue a big car 
} else { 
    // issue a small car 
}