Можно ли получить имя типа универсального класса в Scala? Я знаю, что это невозможно в Java с типом erasur e, но я надеялся, что Scala будет другим случаем.
В настоящее время мне нужно сделать что-то похожее на это:
trait Model
case class User(id: String) extends Model
def fromMap[M<:Model : Manifest](data: Map[String, String], modelType: String) = {
modelType match {
case "user" => User(data.get("id").get)
}
}
val user = fromMap[User](Map("id" -> "id1"), "user")
Очевидно, было бы проще, если бы я мог определить «пользователя», не передавая его .