如何使用匕首限定符批注提供不同的OkHttpClient构建器?

问题描述 投票:0回答:1

我正在尝试使用匕首限定符在我的Android应用程序中提供不同类型的OkHttpClient.Builder。例如,我有两个注释,即@Authorized和@WithTime,每个注释都应向客户端构建器添加一些拦截器。

我希望仅通过注释提供方法就能获得不同的构建器(添加不同的拦截器)。但是当我有多个注释时,我不知道该怎么做。

这是我以前只需要一个注释(@Authorized)时所做的事情。但是现在我可能需要更多类型的客户端,这是不可能的。

@Provides
@Singleton
@Authorized
OkHttpClient.Builder provideOkHttpClientBuilderWithAuthorization(...)
@Provides
@Singleton
OkHttpClient.Builder provideOkHttpClientBuilder(...)
java android dependency-injection retrofit dagger
1个回答
0
投票

您可以像这样访问它,这就是创建限定符的方法@Qualifier @Retention(AnnotationRetention.RUNTIME) @Target(AnnotationTarget.FIELD, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER) annotation class Authorized()当您访问它时,您必须在这样的模块中注释您的提供者乐趣@JvmStatic @Provides @@YourPackagetoQualifier("Authorized") OkHttpClient.Builder provideOkHttpClientBuilderWithAuthorization(...)

© www.soinside.com 2019 - 2024. All rights reserved.