Kotlin 必填项:KodeinBinding<;输入、输入、输出任务存储库>;
在探索科丹的过程中,我遵循了Kotlin 必填项:KodeinBinding<;输入、输入、输出任务存储库>;,kotlin,kodein,Kotlin,Kodein,在探索科丹的过程中,我遵循了 同样的事情也会发生。我做错什么了吗?或者文档已过期?发现问题。我无意中包括 import java.util.Collections.singleton 而不是 导入org.kodein.di.generic.singleton这里是一个完整的工作示例: import org.kodein.di.Kodein import org.kodein.di.generic.bind import org.kodein.di.generic.instance import
同样的事情也会发生。我做错什么了吗?或者文档已过期?发现问题。我无意中包括
import java.util.Collections.singleton
而不是
导入org.kodein.di.generic.singleton
这里是一个完整的工作示例:
import org.kodein.di.Kodein
import org.kodein.di.generic.bind
import org.kodein.di.generic.instance
import org.kodein.di.generic.singleton
interface TasksRepository {
fun log(): String = "EMPTY"
}
class FakeTasksRepository : TasksRepository {
override fun log(): String = "Hello Kodeiners!"
}
val diModel = Kodein.Module("diModel") {
bind<TasksRepository>() with singleton {
FakeTasksRepository()
}
}
fun main() {
val kodein = Kodein {
import(diModel)
}
val tasksRepository: TasksRepository by kodein.instance()
println(tasksRepository.log())
}
import org.kodein.di.kodein
导入org.kodein.di.generic.bind
导入org.kodein.di.generic.instance
导入org.kodein.di.generic.singleton
接口任务存储{
乐趣日志():String=“EMPTY”
}
FakeTasksRepository类:TasksRepository{
override fun log():String=“你好,Kodeiners!”
}
val diModel=Kodein.Module(“diModel”){
使用singleton绑定(){
FakeTasksRepository()
}
}
主要内容(){
val kodein=kodein{
导入(双模型)
}
val tasksRepository:tasksRepository by kodein.instance()
println(tasksRepository.log())
}
不理解您的示例可能出现的问题,没有看到您的答复。您的导入答案有帮助。我增加了你的答案。希望我的问题能帮助其他人谁得到了错误的导入。。。并发现相同的错误消息。
Type inference failed. Expected type mismatched:
required: KodeinBinding<in ???, in ???, out TaskRepository>
found: (Mutable)set<(() -> FakeTaskRepository)!>!
val businessModule = Kodein.Module {
bind<IService>() with singleton { BusinessService() }
}
import org.kodein.di.Kodein
import org.kodein.di.generic.bind
import org.kodein.di.generic.instance
import org.kodein.di.generic.singleton
interface TasksRepository {
fun log(): String = "EMPTY"
}
class FakeTasksRepository : TasksRepository {
override fun log(): String = "Hello Kodeiners!"
}
val diModel = Kodein.Module("diModel") {
bind<TasksRepository>() with singleton {
FakeTasksRepository()
}
}
fun main() {
val kodein = Kodein {
import(diModel)
}
val tasksRepository: TasksRepository by kodein.instance()
println(tasksRepository.log())
}