With the recent versions of dagger 2 one of the improvements made are the possibility of having static provide methods. Simply so:

@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 很陌生,我不确定如何做到这一点.有可能吗?

Thanks!

推荐答案

I can't test it right now, but I think this should work:

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

Kotlin相关问答推荐

了解Kotlin函数

如何在Kotlin中反射多个对象以查找特定类型的属性

在intellij中使用kotlin符号和floordiv

可以从背景图像中点击图标吗?

Scala与Kotlin中的迭代

如何在Docker中使用Selenium和chromedriver?

Kotlin 获取继承类的默认 hashCode 实现

使用 StateFlow 时如何移除监听器?

如何使用函数类型或 lambdas 作为 Kotlin 上下文接收器的类型?

高效匹配两个 Flux

使用 LazyListScope 嵌套可组合项

如何使用 Kotlin KClass 属性 simpleName 生成空值

无法解决:androidx.lifecycle:lifecycle-viewmodel-ktx:1.1.1

Foo::class.java 和 Foo::javaClass 有什么区别?

如何使用Kotlin Dokka记录主构造函数参数

如何将vararg转换为list?

大小写敏感性 Kotlin / ignoreCase

Android Kotlin 创建类实现 Parcelable 在 writeToParcel 方法的 override中给出错误

导航架构组件 - 未生成 DestinationFragmentArgs

在android java类中使用Kotlin扩展