Я пытаюсь найти Clojure-идиоматический способ инициализации объекта Java. У меня есть следующий код:
(let [url-connection
(let [url-conn (java.net.HttpURLConnection.)]
(doto url-conn
(.setDoInput true)
; more initialization on url-conn
)
url-conn)]
; use the url-connection
)
но это кажется очень неуклюжим.
Как лучше создать объект HttpURLConnection
и инициализировать его, прежде чем использовать его позже в коде?
ОБНОВЛЕНИЕ. Кажется, здесь может пригодиться (doto ...)
:
(let [url-connection
(doto (java.net.HttpURLConnection.)
(.setDoInput true)
; more initialization
))]
; use the url-connection
)
Согласно документам doto
, он возвращает значение, которое он «делает».