通过 Shapeless 获取默认大小写 class 参数
Get default case class arguments via Shapeless
shapeless 是否提供了一种类型 class/macro 来调用 HList
包含案例 class 的所有参数的默认值?
假设我们有这种情况class:
case class User(name: String, age: Int = 18)
那我想得到这样一个HList
:
None :: Some(() => 18) :: HNil
默认参数是通过合成方法实现的。
试试它的特质。 https://github.com/milessabin/shapeless/blob/master/core/src/main/scala/shapeless/default.scala
import shapeless.Default
case class User(name: String, age: Int = 18)
val d = Default[User]
println(d())
输出:
None :: Some(18) :: HNil
shapeless 是否提供了一种类型 class/macro 来调用 HList
包含案例 class 的所有参数的默认值?
假设我们有这种情况class:
case class User(name: String, age: Int = 18)
那我想得到这样一个HList
:
None :: Some(() => 18) :: HNil
默认参数是通过合成方法实现的。 试试它的特质。 https://github.com/milessabin/shapeless/blob/master/core/src/main/scala/shapeless/default.scala
import shapeless.Default
case class User(name: String, age: Int = 18)
val d = Default[User]
println(d())
输出:
None :: Some(18) :: HNil