LoginSignup
1
0

More than 3 years have passed since last update.

【KMapper/KRowMapper】null入力を無視してマッピングを行う【Kotlin】

Last updated at Posted at 2020-03-21

自作ライブラリ、KMapper/KRowMapperの機能紹介です。

バージョンは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

  1. これはライブラリが極力黒魔術的な挙動にならないよう、「先に入力された引数が正」という方針を取っているためです。 

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0