Proporcionar un constructor con Clojure Reify
-
09-10-2019 - |
Pregunta
Cuando se utiliza reify
en Clojure, ¿cómo puedo proporcionar una expresión para el constructor?
Por otra parte, ¿cómo puedo pasar argumentos al constructor de la clase base?
Solución
No se puede utilizar reify
a las clases y subclases de crear una instancia - que sólo está destinado para su uso con protocolos e interfaces. (Puede proporcionar implementaciones de métodos de Object
, sin embargo.)
Para crear una instancia subclases anónimos de clases arbitrarias y / o interfaces, uso proxy
. Todos los argumentos a la ctor superclase de un proxy, si los hay, van en el vector args
(el segundo argumento) de la forma proxy
:
(proxy [SomeClass SomeInterface-1 ...] [ctor-arg-1 ...]
; method impls follow
...
)
Ver (doc proxy)
para más detalles.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow