Clojure: вызов последовательности методов для объекта Java
Я видел это где-то задокументировано, но я не могу вспомнить, где и как называлось имя функции: я ищу функцию / макрос, который принимает (Java) объект в качестве аргумента, выполняет последовательность методов для этого объекта и возвращает это. Что-то вроде того:
(<the function> obj
(.setName obj "the name")
(.setAmount obj42.0)
; ...
(.setDescription obj "the description")) ; returns the updated obj
1 ответ
Решение
Ты можешь использовать ..
:
(.. obj (setName "the name") (setAmount 42.0) ... (setDescription "the description"))
Если методы не возвращают целевой объект, вы можете использовать doto
:
(doto obj (.setName "the name") (.setAmount 42.0) ... (.setDescription "the description"))