Есть ли элегантный способ обработки null Collections в ImmutableList.copyOf? [Дубликат]

Я потратил приличное время, пытаясь решить эту проблему. Я думал, что я как-то неправильно установил свой путь к классу, но проблема заключалась в том, что я набрал:

java -cp C:/java/MyClasses C:/java/MyClasses/utilities/myapp/Cool  

вместо:

java -cp C:/java/MyClasses utilities/myapp/Cool   

Я думал, что значение полностью квалифицированного означает укажите полное имя пути вместо полного имени пакета.

5
задан jgm 3 July 2013 в 18:11
поделиться

2 ответа

Я не понимаю, почему вы не могли использовать Objects.firstNonNull:

this.foos = ImmutableSet.copyOf(Objects.firstNonNull(foos, ImmutableSet.of()));

Вы можете сохранить некоторую типизацию со статическим импортом, если это ваша вещь:

import static com.google.common.collect.ImmutableSet.copyOf;
import static com.google.common.collect.ImmutableSet.of;
// snip...
this.foos = copyOf(Objects.firstNonNull(foos, of()));
13
ответ дан Matt Ball 31 August 2018 в 16:38
поделиться

A Collection является ссылкой, как и любая другая, поэтому вы можете сделать:

ImmutableSet.copyOf(Optional.fromNullable(foos).or(ImmutableSet.of()));

Но это становится довольно сложной задачей для записи. Более просто:

foos == null ? ImmutableSet.of() : ImmutableSet.copyOf(foos);
7
ответ дан fge 31 August 2018 в 16:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: