【问题标题】:Provide a constructor with Clojure reify使用 Clojure reify 提供构造函数
【发布时间】:2011-05-21 01:55:01
【问题描述】:

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

另外,如何将参数传递给基类构造函数?

【问题讨论】:

    标签: constructor clojure reify


    【解决方案1】:

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

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

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

    更多详情请见(doc proxy)

    【讨论】:

    • 啊,是的,我的错。我看到了使用 Object 进行 reify 的文档,并天真地尝试在 JComponent 上使用它。我会尝试代理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多