gpt4 book ai didi

kotlin - kotlin 中的 Dagger 2 静态提供程序方法

转载 作者:IT老高 更新时间:2023-10-28 13:26:47 26 4
gpt4 key购买 nike

在最新版本的 dagger 2 中,其中一项改进是可以使用静态提供方法。就这么简单:

@Provides
static A providesA() {
return A();
}

我想知道如何在 kotlin 中做到这一点?我试过了

@Module
class AModule {
companion object {
@JvmStatic
@Provides
fun providesA(): A = A()
}
}

但我收到错误消息:

@Provides methods can only be present within a @Module or @ProducerModule

我猜伴随对象在这里发生了一些事情,但是我对 Kotlin 还是很陌生,我不确定如何做到这一点。有没有可能?

谢谢!

最佳答案

虽然我认为 zsmb13 的解决方案更好,但我找到了另一个可行的解决方案

@Module
class AModule {
@Module
companion object {
@JvmStatic
@Provides
fun providesA(): A = A()
}

// add other non-static provides here
}

但是,请注意,将生成两个类:AModule_ProvidesAFactoryAModule_Companion_ProvidesAFactory 而不是一个 AModule_ProvidesAFactory 类用于具有对象的情况而不是带有伴生对象的类

关于kotlin - kotlin 中的 Dagger 2 静态提供程序方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44894218/

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