欢迎!有关如何使用本页面的更多信息,请参阅关于页面。
如果你在repl中只输入"@1",在之前的版本中,你会得到一个Long不能转换为IDeref的错误。在1.5版中,错误信息是无法将其转换为java.util.concurrent.Future。这是因为它假设任何不是IDeref的东西都自动是Future。deref方法应该生成一个自定义错误,指出你传递的类型既不是IDeref也不是Future。
评论者:gfredericks
附上一个补丁,实现了旧行为(无法转换为IDeref),考虑到对j.u.c.Future的支持似乎只是一个边缘情况(由于clojure的futures本身就是IDeref),这似乎足够好。
我做得最奇怪的事情是使用clojure.core/cast无条件地抛出ClassCastException。如果这很奇怪,我会做点不同的。