Clojure deftype 引用其他类型

Clojure deftype referencing other type

尝试从另一种类型中使用一种类型似乎不起作用:

(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 可见?

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

(ns com.bar)

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