Нужна помощь, чтобы понять эту ошибку и возможные пути ее устранения.
Итак, у меня есть такой тип:
class Foo {
static final class Bar {}
@Inject
Foo(TypeA a, @Nullable Set<Bar> b) {}
}
Чтобы сделать Foo инъекционным, мне нужно выполнить зависимость для
параметры a и b, теперь у меня нет проблем с предоставлением типа a
реализация, это не нуль, поэтому у меня есть метод @Provides в
Пакеты модулей класса. Но как насчет б? Это обнуляемый, как писать
@ Предоставляет параметр, который может быть обнуляемым? Я думаю это
не должно быть обязательным, и Guice должен понимать аннотацию ...
Но что-то не работает правильно, я получил эту ошибку:
1) Нет привязки к реализации java.util.Set<Foo$Bar>
.
А вот метод @Provides (который не работал на АТМ)
@Provides @Nullable
public Foo provideFoo(TypeA a, @Nullable Set<Foo.Bar> b) {
return new Foo(a, b);
}
Я знаю, что вложенный класс не является ни публичным, ни конструктором, поэтому, возможно,
Guice не может получить к нему доступ, но даже если я сделаю их всех публичными (что я
не очень хочу) ошибка все еще остается ... Есть ли что-то я
отсутствует?