Обеспечить конструктор с помощью Clojure Rief
-
09-10-2019 - |
Вопрос
Когда используешь reify
В Clojure, как я могу обеспечить выражение для конструктора?
В качестве альтернативы, как я могу пройти аргументы к конструктору базового класса?
Решение
Вы не можете использовать reify
К классам подкласса и инстанции - это предназначено только для использования с протоколами и интерфейсами. (Вы можете предоставить реализации методов Object
, хотя.)
Для создания анонимных подклассов произвольных классов и / или интерфейсов, используйте proxy
. Отказ Все аргументы в суперкласс CTOR из прокси, если таковые имеются, войти в args
Вектор (второй аргумент) proxy
форма:
(proxy [SomeClass SomeInterface-1 ...] [ctor-arg-1 ...]
; method impls follow
...
)
Видеть (doc proxy)
Больше подробностей.
Не связан с StackOverflow