自作ライブラリ、KMapper
/KRowMapper
の機能紹介です。
- Kotlin向けModelMapper的なライブラリ、KMapperを作った - Qiita
- Kotlin向け高機能RowMapper、KRowMapperを作った - Qiita
- ProjectMapK
バージョンはKMapper 0.17
/KRowMapper 0.4
で書いています。
null入力を飛ばしてマッピングを行う
ProjectMapK
で作成しているマッピングライブラリでは、null
不許可の引数に対しても、渡された値がnull
であればnull
を渡しています1。
一方、場合によっては複数入力の内null
でないもの、あるいはデフォルト値を用いたいという場合も有ります。
そのような場合、以下のようにKParameterRequireNonNull
アノテーションをパラメータに付与することで、null入力を無視したマッピングが行えます。
data class Dst(val fooId: Int, @KParameterRequireNonNull val barStr: String = "default value")
data class Src(val fooId: Int, val barStr: String?)
val src = Src(1, null)
val dst = KMapper(::Dst).map(src)
println(dst) // -> default value
-
これはライブラリが極力黒魔術的な挙動にならないよう、「先に入力された引数が正」という方針を取っているためです。 ↩