themishkun
02/23/2018, 7:56 AMleandrodev
02/24/2018, 3:11 PMleandrodev
02/24/2018, 3:12 PMinterface DependencyProvider<out T>: KoinComponent {
fun provide(): T
}
fun <T: Any> provideDependency(clazz: KClass<T>): DependencyProvider<T> {
return object: DependencyProvider<T> {
override fun provide(): T {
val koinContext = StandAloneContext.koinContext as KoinContext
val resolver: () -> BeanDefinition<*> = { koinContext.beanRegistry.searchAll(clazz) }
return koinContext.resolveInstance(clazz, resolver)
}
}
}
And the Java code:
public class JavaClass {
private DependencyProvider<TasksDao> tasksDaoDependencyProvider = AppExecutorsKt.provideDependency(kotlin.jvm.JvmClassMappingKt.getKotlinClass(TasksDao.class));
}
arnaud.giuliani
02/27/2018, 2:43 PMthemishkun
02/27/2018, 2:46 PMthemishkun
02/27/2018, 2:49 PMarnaud.giuliani
02/27/2018, 2:53 PMarnaud.giuliani
02/27/2018, 2:53 PMthemishkun
02/27/2018, 2:54 PMarnaud.giuliani
02/27/2018, 2:55 PMarnaud.giuliani
02/27/2018, 2:55 PMarnaud.giuliani
02/27/2018, 2:55 PMarnaud.giuliani
02/27/2018, 2:56 PMarnaud.giuliani
02/27/2018, 2:56 PMarnaud.giuliani
02/27/2018, 3:56 PMarnaud.giuliani
02/27/2018, 3:56 PMarnaud.giuliani
02/27/2018, 3:57 PMarnaud.giuliani
02/27/2018, 4:05 PM