Fornire un costruttore con Clojure reificare
-
09-10-2019 - |
Domanda
Quando si utilizza reify
in Clojure, come posso fornire un'espressione per il costruttore?
In alternativa, come posso passare gli argomenti al costruttore della classe base?
Soluzione
Non è possibile utilizzare reify
alle classi delle sottoclassi e istanziare - ha significato solo per l'uso con i protocolli e interfacce. (È possibile fornire implementazioni di metodi di Object
, però.)
Per istanziare sottoclassi anonimi di classi arbitrarie e / o interfacce, l'uso proxy
. Tutti gli argomenti alla ctor superclasse di un proxy, se del caso, vanno nel vettore args
(il secondo argomento) del modulo proxy
:
(proxy [SomeClass SomeInterface-1 ...] [ctor-arg-1 ...]
; method impls follow
...
)
Vedere (doc proxy)
per maggiori dettagli.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow