@Named annotation in Kotlin
Introduction#
How to correctly use the named annotation in Kotlin v1.1
Declaring a qualified dependency
@Module
class AppModule(val app: Application) {
@Provides @Named("the_answer")
fun providesTheAnswer(): Int {
return 42
}
}
Setter based dependency injection
class MyClass{
@field:[Inject Named("the_answer")] lateinit var answer: Int
}
In Android Development, this is the way in which you inject dependencies into Activity
, Fragment
or any other object that is instantiated directly by the OS.
To learn more about the @field:
annotation in Kotlin visit the documentation
Constructor based dependency injection
class MyClass @Inject constructor(@Named val answer: Int){
/* The nuts and bolts of your class */
}