作者:熊熊oO7sloveV | 来源:互联网 | 2023-02-10 16:42
我尝试将Dagger2实现到我的Kotlin项目中,但是我对@Inject
注释有问题.
在Java中它看起来像这样,这工作正常:
public class FooActivity extends Activity {
@Inject
@Named("accessTokenObservable")
public Flowable> accessTokenObservable;
@Override
protected void onCreate(@Nullable final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
App.getGraph().inject(this);
}
}
但我怎么@Inject
在Kotlin 写这条线?
当我使用这个时:
@Inject
@Named("accessTokenObservable")
var accessTokenObservable: Flowable>? = null
我收到此错误消息:
Error:Dagger does not support injection into private fields
如果我使用lateinit
:
@Inject
@Named("accessTokenObservable")
lateinit var accessTokenObservable: Flowable>
我收到此错误消息:
Error:Flowable> cannot be provided without
an @Provides- or @Produces-annotated method.
在Kotlin注入一些东西的正确语法是什么?
1> Tuby..:
我只是用
@Inject
lateinit var presenter: ItemsPresenter
override fun onCreate(savedInstanceState: Bundle?) {
AndroidInjection.inject(this)
super.onCreate(savedInstanceState)
...
}
没有任何问题