fastcodejava fastcodejava - 3 months ago 13
Java Question

Null check in an enhanced for loop

What is the best way to guard against null in a for loop in Java?

This seems ugly :

if (someList != null) {
for (Object object : someList) {
// do whatever
}
}


Or

if (someList == null) {
return; // Or throw ex
}
for (Object object : someList) {
// do whatever
}


There might not be any other way. Should they have put it in the
for
construct itself, if it is null then don't run the loop?

Answer

You should better verify where you get that list from.

An empty list is all you need, because an empty list won't fail.

If you get this list from somewhere else and don't know if it is ok or not you could create a utility method and use it like this:

for( Object o : safe( list ) ) {
   // do whatever 
 }

And of course safe would be:

public static List safe( List other ) {
    return other == null ? Collections.EMPTY_LIST : other;
}