Kotlin: typealiasを使ってめんどうなアノテーションを省略する

Kotlinではtypealiasと呼ばれる、既存のタイプに対して別名をつける機能があります。 https://kotlinlang.org/docs/reference/type-aliases.html

典型的な使い方として、下のような複雑な型に名前をつけると可読性が高くなります。

typealias MyHandler = (Int, String, Any) -> Unit

さらにtypealiasは、アノテーションをつけることも出来ます。

typealias NonWildcardList<T> = List<@JvmSuppressWildcards T>

JvmSuppressWildcardsはDagger(参考リンク)やretrofit(参考リンク)を使っていると、使わざるをえないケースがあるので、typealiasで定義していおけば可読性高く、楽することが出来ます。

Written by