Довольно часто, что я должен проверять значение null перед повторением, если не уверен, что ссылка на сборку равна null или нет. Пример:
Collection<Object> collection = ...
...
if(collection != null)//troublesome
for(Object o : collection)
Конечно, я знаю, что пустая коллекция намного лучше нуля, но в некоторых случаях клиентский код не может управлять обнуляемой коллекцией из других модулей (например, возвращаемое значение из стороннего кода). Поэтому я написал метод утилиты:
public static <T> Iterable<T> nullableIterable(Iterable<T> it){
return it != null ? it : Collections.<T>emptySet();
}
В коде клиента нет необходимости проверять нуль:
for(Object o : nullableIterable(collection))
...
Считаете ли вы, что nullableIterable()
разумно? Любой совет? Любые проблемы? Спасибо!