2017-09-11 100 views
0

因此,簡而言之,我有很多同樣的應用程序的風味略有差異。我想單獨爲所有風味添加導航器。我使用的是Dagger2,並且我爲每種味道都有一個子組件,只爲給定的味道注入東西。所以我想要注入一個Navigator類。Dagger2允許注射爲零

訣竅是,公共代碼中的某些類也使用此導航器,並且使用空檢查。所以,如果它是空的,很好,但如果不是,那麼做x。

所以我想有一個像場:

@Inject @Nullable Navigator navigator; 

匕首給我一個錯誤,如果有這樣的事情沒有@Provides方法,但是這正是我想要的,我想要的@提供進入子模塊但仍注入公共代碼庫。

我該如何做到這一點?

+0

你有沒有找到這個解決方案? – Wolfgang

+0

不幸的是,Dagger顯然不支持這個 – breakline

回答

2

要支持可空類型,您只需在您的@Provides方法中添加@Nullable註釋,該方法返回可空類型,Dagger將接受它。

如果你不這樣做,Dagger會抱怨你只能提供@Nullable帶註釋的方法的可空類型。