Clojure:在 Java 对象上调用一系列方法

Clojure: calling a sequence of methods on a Java object

我在某个地方看到过这个记录,但我不记得函数的名称和位置:我正在搜索的是一个 function/macro,它将(Java)对象作为参数,对该对象执行一系列方法并 returns 它。类似的东西:

(<the function> obj
  (.setName obj "the name")
  (.setAmount obj42.0)
  ; ...
  (.setDescription obj "the description"))  ; returns the updated obj

您可以使用 ..:

(.. obj (setName "the name") (setAmount 42.0) ... (setDescription "the description"))

如果方法没有return你可以使用的目标对象doto:

(doto obj (.setName "the name") (.setAmount 42.0) ... (.setDescription "the description"))