Clojure: вызов последовательности методов для объекта Java - PullRequest
0 голосов
/ 12 сентября 2018

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

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

1 Ответ

0 голосов
/ 12 сентября 2018

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

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

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

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