2016-03-16 2 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; 
} 

Затем вызовите эту функцию, проходящую в четырех ваших массивах в правильном порядке.

Смежные вопросы