我有兩個文件knapsack.clj
和core.clj
。defrecord類未找到例外
knapsack.clj
有defrecord Item
。我想在core.clj中使用它,但它給我cider-repl
的java.lang.ClassNotFoundException: discrete-optimization.knapsack.Item
錯誤,即使我有require
爲knapsack
命名空間。
代碼是在這裏:
;; ---- knapsack.clj ---------
(ns discrete-optimization.knapsack)
;; Item record has weight and value of the Item
(defrecord Item
[weight value])
;; ---- core.clj --------
(ns discrete-optimization.core
(:require [discrete-optimization.knapsack :as KS])
(:import [discrete-optimization.knapsack Item]))
;; doing some knapsack in here.. :)
(and
(= 5 (KS/knapsack-value 5 [(Item. 3 5)]))
(= 5 (KS/knapsack-value 5 [(Item. 3 3) (Item. 2 2)])))
我Clojure的版本是1.5.1
解決方案: 對於便攜式解決方案:
使用->KS/item
指item
以外的命名空間的時候。
'KS/- > Item.'應該是'KS/- > Item' – 2014-11-11 11:02:09
Ashish - 正確的,固定的 – 2014-11-11 15:36:21