Clojure: вызов последовательности методов объекта Java

Я видел это где-то задокументировано, но я не могу вспомнить, где и как называлась функция: я ищу функцию/макрос, которая принимает объект (Java) в качестве аргумента, выполняет последовательность методов для этого объекта и возвращает его. Что-то подобное:

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

person Michael    schedule 12.09.2018    source источник


Ответы (1)


Вы можете использовать ..:

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

Если методы не возвращают целевой объект, вы можете использовать doto:

(doto obj (.setName "the name") (.setAmount 42.0) ... (.setDescription "the description"))
person Lee    schedule 12.09.2018