gpt4 book ai didi

java - 如何在 Kotlin 中注入(inject) var?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:09 26 4
gpt4 key购买 nike

我尝试将 Dagger2 实现到我的 Kotlin 项目中,但我遇到了 @Inject 注释的问题。

在 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);
}
}

但是我必须如何在 Kotlin 中编写 @Inject 行?

当我使用这个时:

@Inject
@Named("accessTokenObservable")
var accessTokenObservable: Flowable<Optional<AccessToken>>? = null

我收到此错误消息:

Error:Dagger does not support injection into private fields

如果我使用 lateinit:

@Inject
@Named("accessTokenObservable")
lateinit var accessTokenObservable: Flowable<Optional<AccessToken>>

我收到此错误消息:

Error:Flowable<Optional<AccessToken>> cannot be provided without
an @Provides- or @Produces-annotated method.

在 Kotlin 中注入(inject)某些东西的正确语法是什么?

最佳答案

我只是用

@Inject
lateinit var presenter: ItemsPresenter

override fun onCreate(savedInstanceState: Bundle?) {
AndroidInjection.inject(this)
super.onCreate(savedInstanceState)
...
}

没有任何问题

关于java - 如何在 Kotlin 中注入(inject) var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42475094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com