В Scala, даже если решение не является элегантным, возможно ли создать/создать новый объект универсального типа T? Можно ли добиться этого с помощью отражения?
Например, меня интересует что-то вроде следующего:
case class Person(name: String, age: Int)
Допустим, я хотел сделать следующее, чтобы создать объект типа Person:
def createObject[T](fieldValues: Seq[Any]): T = {
... T(fieldValues)
}
val person = createObject[Person](Seq("Bob", 20))
Seq[Any]
? Предлагаю подумать о классе типов, а не о небезопасном отражении во время выполнения. - person cchantep   schedule 07.08.2020T
является классом case, вы можете сделать это даже во время компиляции (используя отражение во время компиляции, т.е. макросы под капотом) scastie.scala-lang.org/R7JABtX1RjizE7BsaPVqeQ - person Dmytro Mitin   schedule 07.08.2020