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 []))
尝试从另一种类型中使用一种类型似乎不起作用:
(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 []))