Lassen Sie uns sagen, dass ich diese Klasse habenIn scala, wie Objekt Werte in Map [String, String] drehen?
case class Test (id: Long, name: String)
und eine Instanz dieser Klasse:
Test :
id -> 1
name -> toto
Ich möchte eine Karte [String, String] wie folgt erstellen:
Map("id" -> "1", "name" -> "toto")
Meine Frage ist: Gibt es eine Möglichkeit, diese Instanz von Test in Map [String, String] zu verwandeln? Ich möchte ein Verfahren wie dieses zu verwenden, um zu vermeiden:
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
}
Wenn es keine Methode ist so in Scala zu tun, ist es eine Möglichkeit, über Klasseneigenschaften zu wiederholen? Vielleicht kann ich eine generische Funktion dazu erstellen:
Ist das möglich? Wenn Sie gute Beispiele/Links haben, bin ich interessiert.
Antworten auf [diese Frage] (http://stackoverflow.com/questions/2224251/reflection-on-a-scala-case-class) kann helfen. – incrop
Nicht, dass ich keine generischen Lösungen mag, aber für dieses Problem würde ich 'Map (" id "-> t.id.toString," name "-> t.name) verwenden, wobei" t "eine Instanz von ist "Test". – sschaef
Vielen Dank für den Tipp! – alexgindre