在usecase的构造函数中注入接口

时间:2018-05-15 06:55:58

标签: android dagger-2

我有一个界面:

interface CartonRepository {
    fun addToCart(company: Company): Completable
}

现在我想在我的用例中使用这个接口:

class ObserveCartonItemSelectionUseCase
@Inject constructor(private val cartonRepository: CartonRepository) : ObservableUseCase<UUID, Boolean> {

}

并且此用例通过以下方式注入其他类:

@Inject
protected lateinit var observeCartonSelectionUseCase: ObserveCartonItemSelectionUseCase

我收到错误:

ApplicationComponent.java:13: error: CartonRepository cannot be provided without an @Provides-annotated method.
    public abstract void inject(@org.jetbrains.annotations.NotNull()

1 个答案:

答案 0 :(得分:0)

错误说明了提供CartonRepository应该采取的措施。在界面中添加@Provides注释:

@Provided
interface CartonRepository {
fun addToCart(company: Company): Completable

}

这将告诉Dagger这个界面应该是可注射的。