我嘗試將Dagger2實施到我的Kotlin項目中,但我在@Inject
註釋中遇到問題。如何注入Kotlin中的var?
在Java中,它看起來像這一點,並能正常工作:
public class FooActivity extends Activity {
@Inject
@Named("accessTokenObservable")
public Flowable<Optional<AccessToken>> accessTokenObservable;
@Override
protected void onCreate(@Nullable final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
App.getGraph().inject(this);
}
}
但我怎麼也寫在科特林的@Inject
線?
當我用這一個:
@Inject
@Named("accessTokenObservable")
var accessTokenObservable: Flowable<Optional<AccessToken>>? = null
我收到此錯誤信息:如果我使用lateinit
Error:Dagger does not support injection into private fields
:
@Inject
@Named("accessTokenObservable")
lateinit var accessTokenObservable: Flowable<Optional<AccessToken>>
我收到此錯誤信息:
Error:Flowable<Optional<AccessToken>> cannot be provided without
an @Provides- or @Produces-annotated method.
在Kotlin中注入某些東西的正確語法是什麼?
看看本主題(HTTP://計算器的.com /問題/ 36199796 /匕首-2-命名不能待提供,而無需-A-提供方法)。命名注射有一些特殊的語法 – Dimezis
謝謝@Dimezis –