2015-07-12 30 views
0
if(resellerContract.getStartDate() == null || 
       DateUtil.getDateInformat(DateUtil.YYY_MM_DD, resellerContract.getStartDate()).before(DateUtil.getDateInformat(DateUtil.YYY_MM_DD,new Date()))){ 
      validStartDate = false; 
      logger.error("SPAC Start date is null"); 
      validationErrors.add(new ValidationError(ResellerServiceErrorCode.SPAC_START_DATE_NULL)); 
     } 

我想單獨驗證兩個不同的充condtion我怎麼能做到這一點,如果使用其他或者如果還是我應該用什麼,因爲我想給不同的錯誤信息有沒有什麼辦法可以在if條件中分開這個「OR」(||)條件?

+0

如果你想作出不同的反應,你可以使'if(cond1){...} else if(cond2){...}'。如果你想避免代碼重複,你可以嵌套它們:'if(cond1 || cond 2){/ *代碼適用於這兩種情況*/if(cond1){...} else/* if(cond 2)*/{...}}' – Turing85

+0

這是[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。請將您的問題集中於*您想實現的目標 - 而不是*您認爲應該如何實現。 – alfasin

回答

1

你就不能使用「 elseif「語句?

像例如爲:

if(resellerContract.getStartDate() == null) { 
     .... 
      validStartDate = false; 
      logger.error("SPAC Start date is null"); 
      validationErrors.add(new ValidationError(ResellerServiceErrorCode.SPAC_START_DATE_NULL)); 
} else if (DateUtil.getDateInformat(DateUtil.YYY_MM_DD, resellerContract.getStartDate()).before(DateUtil.getDateInformat(DateUtil.YYY_MM_DD,new Date()))){ 
     .... 
      validStartDate = false; 
      logger.error("SPAC Start date is null"); 
      validationErrors.add(new ValidationError(ResellerServiceErrorCode.SPAC_START_DATE_NULL)); 
} 
0

爲什麼不分開復合if語句成兩個if語句?請澄清你的意圖;我覺得我可能會給你一個微不足道的答案。

if (resellerContract.getStartDate() == null) { 
    validStartDate = false; 
    logger.error("SPAC Start date is null"); 
    validationErrors.add(new ValidationError(ResellerServiceErrorCode.SPAC_START_DATE_NULL)); 
} 

if (DateUtil.getDateInformat(DateUtil.YYY_MM_DD, resellerContract.getStartDate()) 
      .before(DateUtil.getDateInformat(DateUtil.YYY_MM_DD,new Date()))) { 
    //some other code 
} 
相關問題