このエラーとそれを解決する方法を理解するには、何か助けが必要です。Guice CreationException - Foo型の実装がバインドされていません
だから私はこのような種類があります:fooは、注射にするために
class Foo {
static final class Bar {}
@Inject
Foo(TypeA a, @Nullable Set<Bar> b) {}
}
を、私は、今私が 実装を入力して提供するために、何の問題もない、 のparams AおよびBの依存関係を満たすために必要がありますそのヌルではないので、私は パッケージのModuleクラスに@Providesメソッドを持っています。しかし、bについてはどうですか?そのnullable、書く方法 @ nullable可能なパラメータを提供しますか? java.util.Set<Foo$Bar>
用ませ実装がバインドされなかった
1):私の推測では、それは が要求されるべきではないですし、Guiceには注釈を理解する必要があります... しかし、何かが右に動作していない、私はこのエラーを得ました。
そしてここ@Provides方法である(ATM動作しませんでした)
@Provides @Nullable
public Foo provideFoo(TypeA a, @Nullable Set<Foo.Bar> b) {
return new Foo(a, b);
}
私は、ネストされたクラスがパブリックでもコンストラクタではありません知っているので、多分 のGuiceはそれにアクセスすることはできませんが、たとえ私はそれらをすべて公開する(私は が本当に望んでいない)エラーはまだ残っている...私は何かがあります がありますか?
ヌルコレクションが本当に必要ですか?空のセットを使用できますか? –
実際はそうではありませんが、オリジナルの考えでは、クライアントがSetオブジェクトを提供する必要はありません(クライアントが本当に気にしなくても空のSetを構築してください)、Fooコンストラクタはnullをチェックし、私はFoo(TypeA a)を追加して@ Nullableを削除するだけでコンストラクタをオーバーロードすることができることを知っています。多分私はそれについて考えるべきです。 – jimx