我想找到一种Clojure惯用的方式来初始化一个Java对象。我有以下代码:初始化Java对象的Clojure惯用的方式
(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
对象并在之后在代码中使用它之前对其进行初始化?
UPDATE:看来(doto ...)
可以在这里派上用场:
(let [url-connection
(doto (java.net.HttpURLConnection.)
(.setDoInput true)
; more initialization
))]
; use the url-connection
)
按照doto
文档,它返回到它是“做”的值。
@Goric:查看我的更新。这可能是答案。 – Ralph 2010-11-30 14:41:46
是的。和`doto`的doc有一个类似的例子:`(doto(new java.util.HashMap)(.put“a”1)(.put“b”2))` – 2010-11-30 14:44:45