随着 Clojure 1.10 迁移到需要 Java 8,是否计划实现 Java 8 版本中引入的新接口之一?
虽然这并不是在 Clojure 中完成任何事情所必需的,但 java.util.function
中的接口有时对于互操作是必要的。这需要使用如 reify
这样的结构进行笨拙的包装。
例如,可以将 clojure.lang.AFn
扩展到
BiFunction
BiPredicate
Function
Predicate
每个实现方法调用适当的 invoke
方法。Clojure 已经使用了 Object
来处理大多数互操作,因此泛型将在所有地方使用 Object
。
其他一些接口也可以考虑,进行参数和结果的强制类型转换,尽管函数如 apply
的类型重载将限制可以在那里完成的事情。