提供带有Clojure reify的构造函数

时间:2010-12-06 16:04:38

标签: constructor clojure reify

在Clojure中使用reify时,如何为构造函数提供表达式?

或者,如何将参数传递给基类构造函数?

1 个答案:

答案 0 :(得分:5)

您不能将reify用于子类&实例化类 - 它仅用于协议和接口。 (但是,您可以提供Object方法的实现。)

要实例化任意类和/或接口的匿名子类,请使用proxy。代理的超类ctor的所有参数(如果有的话)都进入args形式的proxy向量(第二个参数):

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

有关详细信息,请参阅(doc proxy)