随着 Clojure 1.10 切换到需要 Java 8,有没有计划实现 Java 8 中引入的一些新接口?
虽然在 Clojure 中并非必须,但 java.util.function
中的接口有时在互操作中是必要的。这需要使用如 reify
这样的结构进行笨拙的包装。
例如,clojure.lang.AFn
可以扩展到以下接口
BiFunction
BiPredicate
Function
Predicate
每个实现方法都调用适当 的 invoke
方法。Clojure 已经使用 Object
来处理大多数互操作,因此泛型只需在每个地方使用 Object
。
也可以考虑其他一些接口,例如 cast 参数和结果,但函数(如 apply
)的类型重载将限制可以完成的工作。