有了HList,不用reflection,我们也可以拿到一个class的所有fields:
Import shapeless.{Generic, HNil, ::}
case class Cat(name: String, age: Int)
val gen: Generic.Aux[Cat, String :: Int :: HNil] = Generic[Cat]
val cat: Cat = Cat("kitten", 2)
val fields: String :: Int :: HNil = gen.to(cat)
val reconstructed: Cat = gen.from(fields)
是不是很神奇?!类似于Java里面用reflection来构建object,但是更加type safe。
相关文章
- 03-22#Scala那些事# HList
- 03-22QTP的那些事---通过html标签的属性获取对象(类似onclick的属性)
- 03-22痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU硬件那些事(2.2)- 在串行NOR Flash XIP调试原理
- 03-22爬虫小插曲:关于代理参数-proxies那些事
- 03-22C++ 并发进阶:std:thread 那些事
- 03-22说说 typedef 的那些事
- 03-22Verilog HDL那些事_建模篇笔记(实验三:按键消抖)
- 03-22ssm 框架那些事
- 03-22C++程序员应了解的那些事(74)final关键字 + ostream_iterator(cout,“ “)
- 03-22关于Spring注解容器配置的那些事,掌握这几点,不再难!