Довольно часто мне приходится проверять 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();
}
В клиентском коде больше не нужно проверять null:
for(Object o : nullableIterable(collection))
...
Считаете ли вы nullableIterable()
разумным? Любой совет? Любая забота? Спасибо!