我希望为简单的Scala case类从字符串(例如csv行)中初始化提供简洁的代码:
case class Person(name: String, age: Double)
case class Book(title: String, author: String, year: Int)
case class Country(name: String, population: Int, area: Double)
val amy = Creator.create[Person]("Amy,54.2")
val fred = Creator.create[Person]("Fred,23")
val hamlet = Creator.create[Book]("Hamlet,Shakespeare,1600")
val finland = Creator.create[Country]("Finland,4500000,338424")
有哪个最简单的Creator
对象可以做到这一点呢?从看到一个好的解决方案中我将学到很多Scala。
(请注意,伴生对象Person
、Book
和Country
不应该被强制存在。那样就是样板代码!)
Creator[H :: T]
吗?我该如何阅读这个类型? - marios