Eine folgende Aufzählung haben
%Vor%Wie bekomme ich eine Liste seiner Vals?
Wenn Sie gründlich darüber sein wollen, müssen Sie überprüfen, ob Ihre Symbole Value
als Supertyp haben:
Nun, selbst wenn Sie folgendes haben (was völlig legal ist):
%Vor%Sie erhalten immer noch die richtige Antwort:
%Vor% Ihr aktueller Ansatz würde value someNonValueThing
hier einschließen.
Der folgende Code ruft eine Liste von Symbol
-Objekten ab, die die "Vals" darstellen:
Es sollte angemerkt werden, dass anstatt nach is-Klauseln zu filtern, es mit .collect
testing für bestimmte Typen wie folgt implementiert werden kann:
Dieser Ansatz kann für andere Aufgaben in der Reflexions-API erforderlich sein.
Es sollte auch beachtet werden, dass die Verwendung von .view
überhaupt nicht verpflichtend ist, sondern nur eine Reihe von filter
-Anwendungen (so viel wie viele andere Funktionen wie map
, flatMap
und usw.) .) viel effektiver, indem die Eingabesammlung nur einmal und an dem Punkt durchlaufen wird, an dem sie tatsächlich in eine konkrete Sammlung gezwungen wird ( .toList
in unserem Fall).
Wie von Travis Brown vorgeschlagen, ist es auch möglich, direkt auf das ResponseType
-Objekt zu verweisen. Daher kann der typeOf[ResponseType.Value].asInstanceOf[TypeRef].pre
-Teil durch typeOf[ResponseType.type]
Sie können über die Werte einer Enumeration über die Menge, die von der zurückgegeben wird, iterieren Aufzählungswerte Methode:
%Vor%Tags und Links scala enumeration reflection scala-2.10