2017-05-25 34 views
-2

下面的代碼片段檢查的條件,那麼所有在3情況下做同樣的事情:如何通過相同的操作減少條件檢查?

if (TEMP_UUID_1.equals(fsTempUUID) && "P1".equals(siv.getParentUuid())) { 
     iRating.setFinSalesAmount(value); 
} else if (TEMP_UUID_2.equals(fsTempUUID) && "P2".equals(siv.getParentUuid())) { 
     iRating.setFinSalesAmount(value); 
} else if (TEMP_UUID_3.equals(fsTempUUID) && "P3".equals(siv.getParentUuid())) { 
     iRating.setFinSalesAmount(value); 
} 

我可以以某種方式改變這一點,因爲檢查的條件之後,它做同樣的事情?

+2

你爲什麼不用'||'? – Mritunjay

+0

使用「或」('||')? –

+0

什麼是TEMP_UUID_1?如果它是一個字符串,你可以使用switch語句。 – matt

回答

2

使用單一if聲明,並用OR運營商(||)分開這些條件:

if (TEMP_UUID_1.equals(fsTempUUID) && "P1".equals(siv.getParentUuid() 
    || 
    TEMP_UUID_2.equals(fsTempUUID) && "P2".equals(siv.getParentUuid() 
    || 
    TEMP_UUID_3.equals(fsTempUUID) && "P3".equals(siv.getParentUuid()){ 

    iRating.setFinSalesAmount(value); 
} 

你不需要包圍的初始條件與括號作爲&&||更高的優先級。