在Dagger Hill View模型1.0.0-alpha01中
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha01"
implementation 'com.google.dagger:hilt-android:2.28-alpha'
kapt 'androidx.hilt:hilt-compiler:1.0.0-alpha01'
kapt 'com.google.dagger:hilt-android-compiler:2.28-alpha'
我可以使用以下
class MyViewModel @ViewModelInject constructor(
private val repository: Repository,
@Assisted private val savedStateHandle: SavedStateHandle
) : ViewModel(), LifecycleObserver {
// Some codes...
}
然而,当我迁移到匕首柄视图模型1.0.0-alpha03时
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
implementation 'com.google.dagger:hilt-android:2.31.2-alpha'
kapt 'androidx.hilt:hilt-compiler:1.0.0-alpha03'
kapt 'com.google.dagger:hilt-android-compiler:2.31.2-alpha'
我收到了警告
'Assisted' is deprecated. Deprecated in Java
'ViewModelInject' is deprecated. Deprecated in Java
'ViewModelInject' is deprecated. Deprecated in Java
'Assisted' is deprecated. Deprecated in Java
新的工作方式是什么?
@ViewModel Inject已被弃用,并已被@HiltViewModel替换。
使用HiltViewModel注释的ViewModel将由HiltViewModelFactory创建。包含用 Inject 注释的构造函数的 HiltViewModel 将在 Dagger's Spinal 注入的构造函数参数中定义其依赖项。https://dagger.dev/api/latest/dagger/hilt/android/lifecycle/HiltViewModel
一个简单的ViewModel现在如下所示:
@HiltViewModel
class MainViewModel @Inject constructor(application: Application) :
AndroidViewModel(application) {
}
or
@HiltViewModel
class MainViewModel @Inject constructor() :
ViewModel() {
}
whatever your use case might be.
在匕首刀柄的最后一次更新中,他们做了一些更改,所以在您的情况下,您可以使用@HiltViewModel
和@Inject
将其与ViewModel一起使用。
@HiltViewModel
class MyViewModel @Inject constructor(
private val repository: Repository,
private val savedStateHandle: SavedStateHandle
) : ViewModel(), LifecycleObserver {
// Some codes...
}
此外,如果您使用的是应用程序
组件,则在最新更新中,它将更改为单例组件
。
所以在你的模块类中是这样。
@Module
@InstallIn(SingletonComponent::class.java)
object hiltmodel....{}
在alpha03中,现在使用新的@HiltViewModel
和正常的@Inject
,如下所示。
@HiltViewModel
class MyViewModel @Inject constructor(
private val repository: Repository,
private val savedStateHandle: SavedStateHandle
) : ViewModel(), LifecycleObserver {
// Some code
}
问题内容: 我只是迁移到Spring MVC 版本,但突然在Eclipse STS中将WebMvcConfigurerAdapter标记为已弃用 我该如何删除! 问题答案: 从Spring 5开始,你只需要实现接口 这是因为Java 8在接口上引入了覆盖该类功能的默认方法
我只是迁移到Spring mvc版本,但突然在eclipse STS WebMvcConfigrerAdapter中被标记为不建议使用 我怎么才能把它拿走!
我刚开始编译iOS 11,注意到苹果现在宣布了这个属性 由于不赞成: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin iOS 11中是否有其他属性修复此警告? 默认值会保持为真吗?或者将来会如何处理?
问题内容: 我将JDK1.8与JDK Compilance JavaSE-1.7,Eclipse Luna和Apache httpclient 4.4.1一起使用。 我在Eclipse中收到警告,并且已弃用。这些课程有哪些替代方法? 问题答案: 我实际上只是在看这个,似乎HttpCLient SSLContexts类正在从org.apache.http.conn.ssl.SSLContexts移到
自版本1.8后已弃用:程序包仅包含一个模板标记,并已移至内置标记(lorem)。
问题内容: 今天,我决定将我的android应用程序从Java转换为Kotlin!:)但是,当我输入以下内容时,我感到非常惊讶: 然后Android Studio告诉我:“’getActionView(MenuItem!):View!’ 已弃用。Java中已弃用“ 因此,在问您解决方案之前,我先问谷歌解决方案是什么,我相信我找到了解决方案:“直接使用getActionView()”。 所以我像这样