gpt4 book ai didi

android - 在存储库类中使用 dagger-hilt

转载 作者:行者123 更新时间:2023-12-04 23:46:36 27 4
gpt4 key购买 nike

请考虑以下类(class):

class MainRepository constructor(
private val blogDao: BlogDao,
private val blogRetrofit: BlogRetrofit,
private val cacheMapper: CacheMapper,
private val networkMapper: NetworkMapper
){
.....
}
如果我想将 MainRepository 类转换为使用 dagger-hilt 传递参数,那么在构造函数之前添加 @Inject 就足够了吗,像这样吗?
class MainRepository @Inject constructor(
private val blogDao: BlogDao,
private val blogRetrofit: BlogRetrofit,
private val cacheMapper: CacheMapper,
private val networkMapper: NetworkMapper
){
还是需要更多??

最佳答案

是的,这就足够了。但是,如果您想让您的测试更轻松,请考虑添加 InterfaceMainRepository像这样:

interface MainRepository {
// your functions
}
然后是实现
@Singleton
class MainRepositoryImpl @Inject constructor(
// your dependencies
) : MainRepository
最后,在您的 Di.Modules 中
@Module
@InstallIn(ApplicationComponent::class) // or whatever graph fits your need the best
interface RepositoryModules {
@Binds
fun provideMainRepositoryImpl(repository: MainRepositoryImpl): MainRepository
}
然后,您可以使用您的存储库,如下所示
class ExampleRepositoryUsageClass @Inject constructor(
private val mainrepository: MainRepository // MainRepositoryImpl is injected here
)

关于android - 在存储库类中使用 dagger-hilt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64820394/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com