微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kotlin 延迟初始化 vs Dagger 延迟注入

如何解决Kotlin 延迟初始化 vs Dagger 延迟注入

我有一个带有 OkHttpClient 提供程序方法的模块:

@Provides
@Singleton
fun provideOkHttpClient(interceptor: HttpLoggingInterceptor): OkHttpClient {
        return OkHttpClient.Builder().addInterceptor(interceptor).build()
}

Retrofit 的另一种提供程序方法如下:

@Provides
@Singleton
fun provideRetrofitBuilder(client: Lazy<OkHttpClient>,gson: Gson): Retrofit {
....
}

现在 Retrofit 的提供者接受一个懒惰注入的 OkHttpClientDagger 已经知道如何创建,即使用 dagger 包中的 Lazy 包装。 我的问题是如果它被包裹在 Lazy from dagger 包中,根据我的理解,它在第一次调用 get() 时计算它的值并记住相同的值,那么行为会有所不同吗对于所有后续对 get() 的调用,与何时将其包装在 Lazy from kotlin 包中,后者获取当前 Lazy 实例的延迟初始化值?甚至可以使用 kotlin 包中的 Lazy,这将如何发挥作用?它们提供相同的行为吗? 谢谢你的时间:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。