我尝试将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 –