我有一段行为不端的代码;当我命名记录MethodInfo时,它不再正确覆盖.toString方法。
(defrecord MethodInfo [^clojure.lang.ISeq x ^clojure.lang.ISeq y]
java.lang.Object
(toString [x]
(str (:x x))))
运行一个简单的测试显示这是如何失败的,
=> (.toString (new MethodInfo [1 2] [3]))
"sketch.compiler.main.sklojure1.MethodInfo@10e0d118"
而将记录重命名为A显示代码行为正确,
=> (.toString (new A [1 2] [3]))
"[1 2]"
我究竟做错了什么??