Question

Lorsque vous utilisez reify Clojure, comment puis-je fournir une expression pour le constructeur?

Sinon, comment puis-je transmettre des arguments au constructeur de la classe de base?

Était-ce utile?

La solution

Vous ne pouvez pas utiliser reify aux classes de sous-classe et instancier - il est seulement destiné à être utilisé avec les protocoles et les interfaces. (Vous pouvez fournir des implémentations de méthodes de Object, cependant.)

Pour instancier les sous-classes anonymes de classes arbitraires et / ou d'interfaces, utilisez proxy. Tous les arguments à l'cteur superclasse d'une procuration, le cas échéant, allez dans le vecteur de args (deuxième argument) de la forme proxy:

(proxy [SomeClass SomeInterface-1 ...] [ctor-arg-1 ...]
  ; method impls follow
  ...
  )

Voir (doc proxy) pour plus de détails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top