Given Collection<Object> foo, I usually do this check before iterating over it:
    if (foo != null && !foo.isEmpty()) {
        for (Object f : foo) {
            // ...
        }
    }
I'm just wondering, is this considered best practice? Shouldn't the isEmpty() check be redundant, since for() will just just ignore an empty collection without throwing errors?
How about the null check -- is that neccessary or is there a way to make for() simply ignore null Collections? (Without try-catching the for-loop)
 
     
     
     
     
     
     
     
     
    