Geben Sie einen Konstruktor mit Clojure reify
-
09-10-2019 - |
Frage
Bei der Verwendung von reify
in Clojure, wie kann ich einen Ausdruck für den Konstruktor zur Verfügung stellen?
Alternativ, wie kann ich übergeben Argumente an die Basisklassenkonstruktor?
Lösung
Sie können nicht reify
zu Unterklasse & instantiate Klassen verwenden - es ist nur gemeint, für die Verwendung mit Protokollen und Schnittstellen. (Sie können Implementierungen von Methoden der Object
bieten, though.)
Um anonyme Subklassen von beliebigen Klassen zu instanziiert und / oder Schnittstellen, Verwendung proxy
. Alle Argumente an die übergeordnete Klasse ctor eines Proxy, wenn überhaupt, gehen in die args
Vektor (das zweite Argument) der proxy
Form:
(proxy [SomeClass SomeInterface-1 ...] [ctor-arg-1 ...]
; method impls follow
...
)
Siehe (doc proxy)
für weitere Details.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow