Внедрить интерфейс в конструктор usecase - PullRequest
0 голосов
/ 15 мая 2018

У меня есть интерфейс:

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 голосов
/ 15 мая 2018

Ошибка говорит точно, что нужно сделать, чтобы предоставить CartonRepository. Добавьте @Provides аннотацию к вашему интерфейсу:

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

}

Это скажет Dagger, что этот интерфейс должен быть инъекционным.

...