Вопрос

Когда используешь reify В Clojure, как я могу обеспечить выражение для конструктора?

В качестве альтернативы, как я могу пройти аргументы к конструктору базового класса?

Это было полезно?

Решение

Вы не можете использовать reify К классам подкласса и инстанции - это предназначено только для использования с протоколами и интерфейсами. (Вы можете предоставить реализации методов Object, хотя.)

Для создания анонимных подклассов произвольных классов и / или интерфейсов, используйте proxy. Отказ Все аргументы в суперкласс CTOR из прокси, если таковые имеются, войти в args Вектор (второй аргумент) proxy форма:

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

Видеть (doc proxy) Больше подробностей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top