使用 Clojure reify 提供构造函数
Posted
技术标签:
【中文标题】使用 Clojure reify 提供构造函数【英文标题】:Provide a constructor with Clojure reify 【发布时间】:2011-05-21 01:55:01 【问题描述】:在 Clojure 中使用 reify
时,如何为构造函数提供表达式?
另外,如何将参数传递给基类构造函数?
【问题讨论】:
【参考方案1】:您不能使用reify
子类化和实例化类——它仅用于协议和接口。 (不过,您可以提供Object
方法的实现。)
要实例化任意类和/或接口的匿名子类,请使用proxy
。代理的超类ctor的所有参数(如果有)进入proxy
形式的args
向量(第二个参数):
(proxy [SomeClass SomeInterface-1 ...] [ctor-arg-1 ...]
; method impls follow
...
)
更多详情请见(doc proxy)
。
【讨论】:
啊,是的,我的错。我看到了使用Object
进行 reify 的文档,并天真地尝试在 JComponent 上使用它。我会尝试代理。以上是关于使用 Clojure reify 提供构造函数的主要内容,如果未能解决你的问题,请参考以下文章