在 Java 类中注入 Koin
2022-09-03 18:07:50
我试图在我当前的项目中将Dagger 2替换为Koin,我不想在Kotlin中重写一些类来使用它。
是否可以在java类中注入Koin?
在 Kotlin 中只是
// Inject MyPresenter
val presenter : MyPresenter by inject()
谢谢
我试图在我当前的项目中将Dagger 2替换为Koin,我不想在Kotlin中重写一些类来使用它。
是否可以在java类中注入Koin?
在 Kotlin 中只是
// Inject MyPresenter
val presenter : MyPresenter by inject()
谢谢
是的,这是可能的。只需将项目与此 gradle 文件同步即可
implementation "org.koin:koin-java:$koin_version"
在 java 类中替换
// Inject MyPresenter
private val presenter : MyPresenter by inject()
跟
private Lazy<MyPresenter> presenter = inject(MyPresenter.class);
并在Java类中获取演示器方法,例如
presenter.getValue().sayHello()
您不再需要额外的依赖项,因为这现在是 & 的一部分。koin-java
koin-android
koin-core
// Imports
import static org.koin.java.KoinJavaComponent.get;
import static org.koin.java.KoinJavaComponent.inject;
import static org.koin.core.qualifier.QualifierKt.named;
import static org.koin.core.parameter.DefinitionParametersKt.parametersOf;
// Lazy injection
Lazy<MyDependency> dependency = inject(MyDependency.class);
// Eager injection
MyDependency dependency = get(MyDependency.class);
// Named injection
get(MyDependency.class, named("MyNamedDependency"));
// Parameter injection
get(MyDependency.class, null, () -> parametersOf(this));