请在 2024 年 Clojure 状况调查! 中分享您的想法。

欢迎!请查看 关于 页面以了解更多关于如何使用本网站的信息。

+1
Clojure
已关闭

随着 Clojure 1.10 迁移到需要 Java 8,是否计划实现 Java 8 版本中引入的新接口之一?

虽然这并不是在 Clojure 中完成任何事情所必需的,但 java.util.function 中的接口有时对于互操作是必要的。这需要使用如 reify 这样的结构进行笨拙的包装。

例如,可以将 clojure.lang.AFn 扩展到

  • BiFunction
  • BiPredicate
  • Function
  • Predicate

每个实现方法调用适当的 invoke 方法。Clojure 已经使用了 Object 来处理大多数互操作,因此泛型将在所有地方使用 Object

其他一些接口也可以考虑,进行参数和结果的强制类型转换,尽管函数如 apply 的类型重载将限制可以在那里完成的事情。

已关闭,重复项: 集成到 java.util.function 接口

1 答案

+1

关于这个主题,我们已经在其他 Ask Clojure 问题和中看到了很多 JIRAs。我们花了很多时间研究这个问题的选项,但还没有决定我们想要做什么(而且我们目前没有计划在 1.11 时间范围内这样做)。

by
我知道在1.10版本之前已经讨论过这个问题,但是由于需要对Java 6进行支持,当时无法实现。不幸的是,我无法在Ask Clojure上找到合适的搜索词,所以直接提问。

我考虑的不是1.11版本。这些特性已经被决定了吧?
...