В Scala, как превратить значения объекта в Map [String, String]?

Допустим, у меня есть этот класс

case class Test (id: Long, name: String)

и экземпляр этого класса:

Test :
id -> 1
name -> toto

Я хотел бы создать карту [String, String] следующим образом:

Map( "id" -> "1", "name" -> "toto")

Мой вопрос: есть ли способ превратить этот экземпляр Test в Map [String, String]? Я хочу избежать использования метода, как этот:

def createMap(instance: Test): Map[String, String] = {
    val map = new Map[String, String]
    map.put("id", instance.id.toString)
    map.put("name", instance.name)
    map
}

Если в Scala нет способа сделать это, есть ли способ перебрать свойства класса? Может быть, я могу создать универсальную функцию для этого:

def createMap(instance: T): Map[String, String] = {
   val map = new Map[String, String]
   //pseudocode 
   for  ((name, value) <- instance.getClassProperties.getValues) {
      case value.isInstanceOf[String] : map.push(name, value)
      case _ : map.push(name, value.toString)
    }
    map
}

Это возможно ? Если у вас есть хорошие примеры / ссылки, мне это интересно.

Ответы на вопрос(3)

Ваш ответ на вопрос