我的問題是 -刪除重複的代碼
我有兩個字符串變量site_inclusion
和site_exclusion
。如果site_inclusion
有一個值,那麼我不在乎site_exclusion
包含什麼值。也就是說site_inclusion
優先於site_exclusion
。但是,如果site_inclusion
是null
和site_exclusion
有一個值,那麼我想檢查site_exclusion
。
爲了更精確:
- 如果
site_inclusion
和site_exclusion
均爲null
然後設置作爲useTheSynthesizer
true
; - 如果
site_inclusion
不是null
並且它與regexPattern
匹配,則將useTheSynthesizer
設置爲true
。我不在乎site_exclusion
有什麼價值。 - 如果
site_inclusion
是null
和site_exclusion
不null
和site_exclusion
不匹配regexPattern
然後設置useTheSynthesizer
爲true。
我寫了下面的代碼,但我總覺得,我在的if/else循環重複這裏一些東西。任何代碼改進將不勝感激,滿足我的條件。
String site_inclusion = metadata.getSiteInclusion();
String site_exclusion = metadata.getSiteExclusion();
// fix for redundant data per site issue
if(site_inclusion != null && site_inclusion.matches(regexPattern)) {
useTheSynthesizer = true;
} else if(site_exclusion != null && !(site_exclusion.matches(regexPattern))) {
useTheSynthesizer = true;
} else if(site_inclusion == null && site_exclusion == null) {
useTheSynthesizer = true;
}
可能更適合[codereview.stackexchange.com](http://codereview.stackexchange.com/) – Torious
@Torious:的確如此。我甚至沒有注意到codereview SE。 –
您的示例代碼與您的描述不符。如果'site_inclusion'不爲空,且它與模式不匹配,則示例代碼繼續檢查'site_exclusion'是否匹配。這與第2點相矛盾,如果'site_inclusion'不爲空,那麼你說你不關心'site_exclusion'。 – jahroy