Clojure deftype引用其他类型

时间:2015-10-04 00:38:34

标签: java clojure reification

尝试使用其他类型的一种类型似乎不起作用:

(deftype Foo [^int a ^int b])
(definterface Bars (^Foo makefoo []))

(deftype Bar [^int a ^int b] Bars (^Foo makefoo [this] (Foo. 1 2)))
;java.lang.NoClassDefFoundError: java/lang/Foo.

如何让Foo对Bar可见?

1 个答案:

答案 0 :(得分:3)

如果在definterface中为提示指定完整命名空间,则一切似乎都能正常工作。

(ns com.bar)

(definterface Bars 
  (^com.bar.Foo makefoo []))