Dagger2: 2.26時点でのKotlinサポート状況
Created at Sun, Feb 2, 2020Daggerの2.25から少しずつKotlin向けの対応が入っています。
この記事ではそれらについて紹介していきます。
objectクラスにJvmStaticが必須ではなくなった
2.25から入った変更です。
前
@Module
object AppModule {
@JvmStatic // JvmStaticの指定が必須だった
@Provides
fun provideFuga(): Fuga = Fuga()
}
今
@Module
object AppModule {
@Provides
fun provideFuga(): Fuga = Fuga()
}
Qualifierを使うときに、fieldの指定がいらなくなった
これも2.25から入った変更です。
前
@Inject
@field:HogeQualifier // @field:の指定が必須だった
lateinit var namedObject: NamedObject
今
@Inject
@HogeQualifier
lateinit var namedObject: NamedObject
companion objectにModuleをつけなくて良くなった
これは2.26から入った変更です。
前
@Module
interface MainActivityModule {
@Module // 必須だった
companion object {
@JvmStatic // 必須だった
@Provides
fun provideTestHoge(): TestHoge = TestHoge()
}
}
今
@Module
interface MainActivityModule {
companion object {
@Provides
fun provideTestHoge(): TestHoge = TestHoge()
}
}
まとめ
ハマりがちだった部分が少しずつ解消されていく😊