В Dagger 2 я мог бы использовать @Qualifier для создания экземпляров двух объектов одного типа с разными аргументами, например.
@Module
open class Bag {
@Provides @Named(LOVE)
open fun sayLoveDagger2(): Info {
return Info("I Love You")
}
@Provides @Named(HELLO)
open fun sayHelloDagger2(): Info {
return Info("Hello Dagger 2")
}
}
class Info(val text: String)
И я мог бы связать их, как
@Inject
@field:Named(LOVE)
lateinit var infoLove: Info
@Inject
@field:Named(HELLO)
lateinit var infoHello: Info
Однако, если я хочу внедрить объект Info
с аргументом, определенным на стороне объявления объекта, как показано ниже, например как показано ниже ... (очевидно, что это невозможно), как я могу это сделать?
@Inject
@field:Named("My String that I want to send into Info as argument")
lateinit var infoWithAboveAsArgument: Info