Guava: ImmutableSet of either values or an empty set
guava, java
Solution
This is phrased as a question about Guava and `ImmutableSet`, but the real issue here is with `aGeoR.getFailed()`. It is essentially never appropriate for a collection-returning method to return null. It should be returning an empty set to begin with (see Effective Java); and yeah, the fact that it isn't is going to cause some pain to users.
When I have to deal with an API like that, and I can't fix it or get it fixed, I do exactly what you showed in your revision of @Jherico's answer.
Set<FailedGeoR> failedOrNull = aGeoR.getFailed();
Set<FailedGeoR> failed = (failedOrNull == null)
? ImmutableSet.<FailedGeoR>of()
: ImmutableSet.copyOf(failedOrNull);
Problem
I need a cleaner solution to using an ImmutableSet. I have code that looks like ``` Set foo = ImmutableSet.copyOf(aGeoR.getFailed()); ``` it works great when aGeoR.getFailed() returns one or more entries. it fails when the returned set is null. When its null, I need a ``` Set foo = ImmutableSet.of(); ``` What is the clean way to do this?