Я потратил приличное время, пытаясь решить эту проблему. Я думал, что я как-то неправильно установил свой путь к классу, но проблема заключалась в том, что я набрал:
java -cp C:/java/MyClasses C:/java/MyClasses/utilities/myapp/Cool
вместо:
java -cp C:/java/MyClasses utilities/myapp/Cool
Я думал, что значение полностью квалифицированного означает укажите полное имя пути вместо полного имени пакета.
Я не понимаю, почему вы не могли использовать 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()));
A Collection
является ссылкой, как и любая другая, поэтому вы можете сделать:
ImmutableSet.copyOf(Optional.fromNullable(foos).or(ImmutableSet.of()));
Но это становится довольно сложной задачей для записи. Более просто:
foos == null ? ImmutableSet.of() : ImmutableSet.copyOf(foos);