Коллекция итераторов null

Довольно часто мне приходится проверять 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()разумным? Любой совет? Любая забота? Спасибо!

10
задан 卢声远 Shengyuan Lu 7 July 2012 в 09:02
поделиться