2016-05-27 11 views
-2

die folgende Klasse Gegeben:
case class Test(id: Long, name: String) { val details = Map("size" -> 54) }

Wie extrahieren i details ohne die Klasse zu instanziieren? Ich weiß, wie man die id und die name mit Scala Reflexion extrahiert, aber nicht herausfinden kann, wie man extrahiert, was ich brauche.Extract scala Fall Klassenfeld

+1

Sie können Instanzmitglieder nicht extrahieren, ohne eine Instanz zu erstellen. Nein, du weißt nicht, wie man die ID und den Namen mithilfe von Scala reflection extrahiert, denn es ist unmöglich. – Dima

+0

das war unpassend. Du bist eine Douche. F. du. – Dima

+0

Arbeite an deiner Einstellung Und vielleicht hörst du weniger freche Kommentare. Vielleicht dachte ich, ich wüsste, worüber ich rede, wenn ich es nicht tue. korrigiere mich einfach, sei kein Arsch. – Killyz

Antwort

2

In Scala gibt es keine statischen Elemente. Wenn Sie jedoch Daten haben, die aus beliebigem Code statisch verfügbar sein sollen, ohne die umschließende Klasse zu instanziieren, definieren wir normalerweise object s mit diesen Daten.

object Test { 
    val Details = Map("size" -> 54) 
} 
case class Test(id: Long, name: String) { 
    val details = Test.Details 
} 

Hinweis des Fall der wörtlichen Details - im Gegensatz zu Java, gibt es eine Konvention in Scala zu nennen Konstanten in Camelcase, mit einem Großbuchstaben beginnen.