2016-03-16 106 views
3

我有一個類,它擁有幾個字節數組,有些可能是空的一些沒有。我想返回第一個非null數組(如果有的話),如果沒有,則返回null。但是代碼看起來很冗長和難看。更清潔的方法來檢查是否空

public byte[] getFirstPhoto() { 
    if (photo1 != null) { 
     return photo1; 
    }  
    if (photo2 != null) { 
     return photo2; 
    } 
    if (photo3 != null) { 
     return photo3; 
    } 
    if(videoThumbnail != null){ 
     return videoThumbnail; 
    } 
    return null; 
} 

無論如何要清理那個,還是不是真的?

+1

最後如果沒有必要 – wero

+1

@wero:它使其意圖明確。 – Makoto

+0

@wero並允許在不更改現有代碼後插入另一個案例。 –

回答

4

是的。寫一個像這樣的方法:

public byte[] firstNonNull(byte[]... arrays) { 
    for (byte[] array : arrays) { 
     if (array != null) 
      return array; 
    } 
    return null; 
} 

然後調用這個函數按照正確的順序傳入你的四個數組。

相關問題