我有一个现有的 android java 项目,我正在为 DI 介绍 Koin。
在我的活动中,我一直在使用
private Lazy<DeckActivityViewModel> viewModel = inject(DeckActivityViewModel.class);
我想在多个片段之间共享视图模型,所以想知道是否有一个等效于“by sharedViewModel()”的java来这样做?
Java 不支持属性委托,而 koin 使用属性委托来提供inject(),viewModel()和sharedViewModel(). 所以,答案是你不能在java中使用它。
对于您的 Java Fragment,必须使用sharedViewModel或getSharedViewModel来自SharedViewModelCompat:
private Lazy<DeckActivityViewModel> viewModel = SharedViewModelCompat.sharedViewModel(this, DeckActivityViewModel.class);