Clojure, один и тот же вызов метода для разных объектов Java
В этом коде headerTable
а также rowsTable
являются объектами Java Здесь для них вызывается один и тот же метод с тем же аргументом:
(.setHorizontalAlignment headerTable Element/ALIGN_LEFT)
(.setHorizontalAlignment rowsTable Element/ALIGN_LEFT)
Есть ли лучший способ сделать это? Я думаю, что должен быть способ объединить два вызова в один. Но так как это "побочный эффект" кода, возможно, нет??
Я думаю об ответе без написания пользовательской функции или макроса, что-то вроде "просто использовать juxt
или же comp
", но тогда, может быть, я слишком предписываю...
Леонид Бесчастный упомянул хинтингEdit Type, так что на всякий случай это поможет подпись метода Java:
public void setHorizontalAlignment(int horizontalAlignment)
И класс PdfPTable
от iText. (Этот код используется для создания файлов PDF).
1 ответ
Решение
Есть много возможных рефакторингов, один будет
(run! #(.setHorizontalAlignment ^PdfPTable % Element/ALIGN_LEFT)
[headerTable rowsTable])