Это сформулировано как вопрос о Гуаве и ImmutableSet
, но реальная проблема здесь с aGeoR.getFailed()
. По сути, метод, возвращающий коллекцию, никогда не возвращает null. Для начала он должен возвращать пустой набор (см. Эффективная Java); и да, тот факт, что это не будет причинять пользователям боль.
Когда мне приходится иметь дело с таким API, и я не могу это исправить или исправить, я делаю именно то, что вы показали в своей редакции ответа @ Jherico.
Set<FailedGeoR> failedOrNull = aGeoR.getFailed();
Set<FailedGeoR> failed = (failedOrNull == null)
? ImmutableSet.<FailedGeoR>of()
: ImmutableSet.copyOf(failedOrNull);