繁体   English   中英

clojure Java互操作和接口

[英]clojure java interop and interfaces

我在使用Clojure的Java接口时遇到问题。

我有以下课程:公共课程OpenAccess

其中有一个方法:静态连接connect(String url)

其中Connection是接口:公共接口Connection

在Java中,我可以这样做来建立连接:

Connection conn = OpenAccess.connect(url);

我从Clojure尝试了以下方法,但不起作用:

(defn connection [url]
  (let [oa (access.OpenAccess.)
    connection (reify access.Connection
             .....
(.connect oa connection)))

出现“ IllegalArgumentException的错误,找不到匹配的方法:连接以进行类访问。OpenAccess”

我不知道如何从Clojure中正确执行Java接口。

看起来像一个静态调用:

(defn connection [url]
  (OpenAccess/connect url))

如果需要键入提示,则可以像这样使用它:

(let [^Connection conn (connection "http://foo")]
  // use your conn 
  )

不需要 ^ Connection,但是它将告诉编译器conn上方法调用的类型,这将避免反射。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM