我正在尝试使核心java类实现一个接口。 我正在尝试以下方面:
(extend-protocol clojure.lang.Seqable
java.lang.Integer
(seq [this] (seq (str this))))
但这似乎不起作用,因为Seqable只是一个接口而不是协议。
是否可以使(seq 123)
有效?如何为java.lang.Strings实现seq
?
代理似乎也无法做到这一点。
我知道我必须在这里找到一些非常明显的东西。
答案 0 :(得分:2)
不可能。 clojure.lang.RT/seqFrom
对于许多java内置类型(如Collection和String)都有special cases,并且你不能为没有直接实现Sewable的类添加自己的。{/ p>
答案 1 :(得分:0)
如果java类实现Iterable,并且包含在seq
中,则可以将其用作序列,并使用某些restrictions。