我想将clojure Java对象(分配给let *)转换为另一种Java类类型。这可能吗,如果可以,我该怎么做?
更新:
自从我发布了这个问题以来,我已经意识到我不需要强制转换Clojure,因为它没有接口(interface)的概念,更像是Ruby Duck类型。我只需要在知道某个对象肯定是某种类型的情况下进行强制转换,在这种情况下,我会收到ClassCastException
最佳答案
在cast
中有一个clojure.core
函数可以做到这一点:
user> (doc cast)
-------------------------
clojure.core/cast
([c x])
Throws a ClassCastException if x is not a c, else returns x.
顺便说一句,您不应该直接使用
let*
-只是let
后面的实现细节(应该在用户代码中使用)。