You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用限定符注解绑定泛型接口仍触发Dagger DuplicateBindings错误

问题原因

你自定义的@WorkerContract注解缺少Dagger要求的@Qualifier元注解,无法被识别为绑定区分的限定符。此时Dagger会认为你是对同泛型参数的IWorkerContract<List<ShopItemDescription>, String>做了两次无差别绑定,因此触发重复绑定错误。

解决方案

分两步操作即可修复:

  1. 给@WorkerContract注解添加@Qualifier元注解,修改后代码如下:
import javax.inject.Qualifier

@Qualifier // 新增此行
@Retention(AnnotationRetention.RUNTIME)
annotation class WorkerContract(val value: EWorkerContracts)
  1. 检查注入两个IWorkerContract实例的位置(即报错信息里的ShopItemInteractor构造函数),给两个参数分别加上对应的限定符:
class ShopItemInteractor
@Inject constructor(
    @WorkerContract(EWorkerContracts.SHOP_ITEM_PROD)
    private val shopItemProductWorkerContract: IWorkerContract<List<ShopItemDescription>, String>,
    @WorkerContract(EWorkerContracts.SHOP_ITEM_TECH)
    private val shopItemTechnicalWorkerContract: IWorkerContract<List<ShopItemDescription>, String>,
    // 其他参数
) {
    // 类逻辑
}

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:48:04