0

我正在尝试按照本教程使用 svnkit,但从 clojure 进行操作。我的代码是:

(defn svntest [ url ]
  (. DAVRepositoryFactory setup)
  (try (let [ repository (. SVNRepositoryFactory create 
           (. SVNURL parseURIEncoded url))]    
           (.iterator 
              (. repository getDir "svnkit" -1 nil (cast Collection nil)))
         )
    (catch SVNException svne
      (println (str "err: " (.getMessage svne)))
      )
  )
)
(svntest "http://svn.svnkit.com/repos/svnkit/trunk")

但是,我的getDir调用似乎不起作用 - 我得到一个 IllegalArgumentException 因为这个 getDir 返回一个 long 而不是一个集合。

我究竟做错了什么?我是否需要以不同的方式转换参数以获得此重载方法的另一个版本?

4

1 回答 1

1

要修复此类型提示let语句中的集合,如下所示:

(let [^Collection coll nil
      repository (. SVNRepositoryFactory create 
                   (. SVNURL parseURIEncoded url))]
        (.iterator
          (. repository getDir "svnkit" -1 nil coll)))
; ...
于 2013-04-14T08:15:14.140 回答