Hilt - 什么是 Java 相当于 kotlin 的 "by viewmodels()" 将视图模型注入 activity?
Hilt - what is the Java equivalent to kotlin's "by viewmodels()" to inject viewmodel into activity?
我正在学习 Kotlin 教程,学习 Dagger Hilt 以进行依赖注入。教程使用
class MainActivity: AppCompatActivity() {
private val viewModel: TestViewModel by viewModels()
}
在 MainActivity 中注入视图模型。
它需要依赖项:implementation "androidx.activity.activity-ktx:1.1.0"
才能这样做。
我正在尝试学习 Java 中的刀柄,所以我不确定 Java 相当于将视图模型注入我的 activity 是什么。
这是不正确的,不起作用
@Inject
private TestViewModel testViewModel;
并使用
testViewModel = new ViewModelProvider(this).get(TestViewModel.class);
不像是依赖注入。
Java 中的 by viewModels()
相当于什么?
testViewModel = new ViewModelProvider(this).get(TestViewModel.class)
确实正是 by viewModels()
为您所做的。
您会注意到 by viewModels()
和 new ViewModelProvder(this)
都没有传入自定义 ViewModelProvider.Factory
实例 - 那是因为它们使用默认工厂 - 由 Hilt 设置的通过 DI 正确创建 ViewModel。
我正在学习 Kotlin 教程,学习 Dagger Hilt 以进行依赖注入。教程使用
class MainActivity: AppCompatActivity() {
private val viewModel: TestViewModel by viewModels()
}
在 MainActivity 中注入视图模型。
它需要依赖项:implementation "androidx.activity.activity-ktx:1.1.0"
才能这样做。
我正在尝试学习 Java 中的刀柄,所以我不确定 Java 相当于将视图模型注入我的 activity 是什么。
这是不正确的,不起作用
@Inject
private TestViewModel testViewModel;
并使用
testViewModel = new ViewModelProvider(this).get(TestViewModel.class);
不像是依赖注入。
Java 中的 by viewModels()
相当于什么?
testViewModel = new ViewModelProvider(this).get(TestViewModel.class)
确实正是 by viewModels()
为您所做的。
您会注意到 by viewModels()
和 new ViewModelProvder(this)
都没有传入自定义 ViewModelProvider.Factory
实例 - 那是因为它们使用默认工厂 - 由 Hilt 设置的通过 DI 正确创建 ViewModel。