clojure – 如何映射要执行的Java方法序列

前端之家收集整理的这篇文章主要介绍了clojure – 如何映射要执行的Java方法序列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下将有效:
  1. (map #(%1 "21") [identity])

但是,以下代码失败

  1. (map #(%1 "21") [.toString])

如何创建Java方法的seq /集合?

解决方法

Java方法不像clojure中的函数那样是一等公民.您不能将java方法作为参数传递,返回或存储在变量和集合中.但是您可以通过 memfn创建函数或只包含原始方法调用的匿名函数
  1. (map #(%1 21) [(memfn toString)])
  2. => ("21")
  3.  
  4. (map #(%1 21) [#(.toString %)])
  5. => ("21")

猜你在找的Java相关文章