假设我有两个界面,比如:

interface LetterClassifier
interface NumberClassifier

Then these interfaces would be applied to this class:

class Classifier() : LetterClassifier, NumberClassifier

现在,我只想将这些实例设置为LetterClassifierNumberClassifier,而不是Koin中的Classifier.

我认为这样做的方式是:

module {
    val classifier = Classifier()

    single<NumberClassifier> { classifier }
    single<LetterClassifier> { classifier }
}

But I don't think this is the right way. Can someone guide me?

推荐答案

You could bind types to your definition like it is described on official article:

single { Classifier() } binds arrayOf(LetterClassifier::class, NumberClassifier::class)

如果您想完全排除Classifier个类型,可以执行以下操作:

single<LetterClassifier> { Classifier() } bind NumberClassifier::class

Kotlin相关问答推荐

了解Kotlin函数

Gradle Jooq配置自定义生成器

Kotlin 海峡没有结束

通过快捷键手动砍掉功能参数等

Java/Kotlin中类似Rust般的注释编译?

使用调度程序运行异步 Kotlin 代码

具有泛型类型的 Kotlin 密封接口不会为其子类型推断约束

使用空键映射获取

.indices 在 kotlin 中的含义是什么?

作为 Kotlin 中的函数的结果,如何从 Firestore 数据库返回列表?

主机名不能为空

Kotlin中的测试无法访问受保护(protected)的方法

IllegalStateException:function = , count = 3, index = 3

保存对象时未填充 Spring Boot JPA@CreatedDate @LastModifiedDate

旋转 kotlin 数组

比较Kotlin的NaN

项目不会使用 Kotlin 1.1.3 构建

为什么 Kotlin 会收到这样的 UndeclaredThrowableException 而不是 ParseException?

具有多个 parameter的 Kotlin 枚举

如何在 kotlin 中创建重复对象数组?