欢迎!请查阅关于页面以获取更多关于这方面的工作详情。
如果您只在repl中键入“@1”,在之前的版本中您会得到一个错误,即Long无法转换为IDeref。在1.5版本中,错误信息是该对象不能转换为java.util.concurrent.Future。这是因为它假设任何不是IDeref的东西都自动是Future。deref方法应该生成一个自定义错误,指出您传递的类型既不是IDeref也不是Future。
评论人:gfredericks
附上一个补丁,实现了旧的行为(无法转换为IDeref),在我看来这已经足够好了,因为对j.u.c.Future的支持似乎是一个边缘案例(因为clojure的未来本身就是IDeref)。
我做得最奇怪的事情是使用clojure.core/cast无条件地抛出ClassCastException。如果这听起来很奇怪,我会做些不同的事情。