5

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

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

4

1 回答 1

5

您不能使用reify子类化和实例化类——它仅用于协议和接口。(不过,您可以提供 的方法的实现Object。)

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

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

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

于 2010-12-06T16:10:01.000 回答