5

Clojure で使用reifyする場合、コンストラクターに式を提供するにはどうすればよいですか?

または、基本クラスのコンストラクターに引数を渡すにはどうすればよいですか?

4

1 に答える 1

5

reifyクラスのサブクラス化とインスタンス化には使用できません。これは、プロトコルとインターフェイスでの使用のみを目的としています。(ただし、 のメソッドの実装を提供することはできますObject。)

任意のクラスやインターフェースの無名サブクラスをインスタンス化するには、 を使用しますproxy。プロキシのスーパークラス ctor へのすべての引数は、存在する場合、次の形式のargsベクトル (2 番目の引数) に入ります。proxy

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

詳細については、を参照(doc proxy)してください。

于 2010-12-06T16:10:01.000 に答える