java - 初始化 Java 对象的 Clojure 惯用方法

标签 java clojure initialization idioms

我正在尝试寻找一种 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 文档,它返回它正在“执行”的值。

最佳答案

如我的问题更新中所述,这是我得出的答案:

(let [url-connection
        (doto (java.net.HttpURLConnection.)
          (.setDoInput true)
          ; more initialization
          ))]
  ; use the url-connection
  )

也许有人可以想出更好的办法。

关于java - 初始化 Java 对象的 Clojure 惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4314718/

相关文章:

Java:向方法发送多个参数

javascript - 我怎样才能从java类获取变量数据到javascript?

clojure - 在 Clojure 中惯用地迭代 2(或更高)维序列

swift - 通过初始化器注入(inject)依赖项(使用 Storyboard)? [ swift ]

C - 如何在 calloc 中使用自己的值(而不是 0)

java - JavaDStream Pom依赖关系

java - 使用QuickBooks Web Connector的身份验证问题:对象引用未设置为对象的实例

data-structures - 在clojure中反转 HashMap

c++ - 初始化两个相互引用的结构数组

java - 如何在操作表单中显示 HTML 内容