Every time I have to iterate over a collection I end up checking for null, just before the iteration of the for-each loop starts. Like this:
if( list1 != null ){
for(Object obj : list1){
}
}
Is there a shorter way, so that we can avoid writing the "if" block ? Note: I am using Java 5, and will be stuck with it for sometime.
It's already 2017, and you can now use Apache Commons Collections4
The usage:
Null check in an enhanced for loop
Then use:
In Java 8 there is another solution available by using
java.util.Optional
and theifPresent
-method.So, not a solution for the exact problem but it is a oneliner and possibly more elegant.
1) if list1 is a member of a class, create the list in the constructor so it's there and non-null though empty.
2) for (Object obj : list1 != null ? list1 : new ArrayList())
I guess the right answer is that: there is no way to make it shorter. There are some techniques such as the ones in the comments, but I don't see myself using them. I think it's better to write a "if" block than to use those techniques. and yes.. before anybody mentions it yet again :) "ideally" the code should be desgined such that list should never be a null
would allow you to write
Of course, this really just moves the complexity elsewhere.