Mam metodę, która przyjmuje argument Collection<Foo> foos
, który może mieć wartość NULL. Chcę skończyć z lokalną kopią danych wejściowych jako ImmutableSet
. Teraz mój kod wygląda następująco:Czystość metody Guava do obsługi kolekcji o możliwej wartości zerowej
if (foos == null)
{
this.foos = ImmutableSet.of();
}
else
{
this.foos = ImmutableSet.copyOf(foos);
}
Czy istnieje lepszy sposób na zrobienie tego? Jeśli foos
byłby prostym parametrem, mogłem zrobić coś takiego, jak Objects.firstNonNull(foos, Optional.of())
, ale nie jestem pewien, czy istnieje coś podobnego do obsługi kolekcji.
+1 I warto zauważyć, że 'copyOf' jest wystarczająco inteligentny, aby po prostu zwrócić dane wejściowe, jeśli jest to' ImmutableSet'. –
@ PaulBellora Wierzę, że właśnie zrobiłeś. ':)' –
Również 'ImmutableSet.() może być niestety konieczne. –