2011-11-18 15 views
2

我想調用Java功能(由SVNKit提供)具有以下簽名時:ClassCastException異常傳遞一個HashMap的Java函數

public abstract long getFile(String path, 
          long revision, 
          Map properties, 
          OutputStream contents) 
         throws SVNException 

的參數屬性和內容都是可選的。在Clojure中,我將此函數稱爲:

(defn read-file 
    "" 
    [repository path] 
    (let [properties (java.util.HashMap.) 
     baos (java.io.ByteArrayOutputStream.)] 
    (.getFile repository path -1 properties baos) 
    (.size baos))) 

我在屬性參數上得到一個ClassCastException。當我離開它(使用零而不是屬性)它工作正常。 ClassCastException不提供任何有關它所期望的類的信息。

任何想法?

+3

這可能是一個愚蠢的問題 - 但你肯定Map接口的GetFile方法是一個java.util.Map? – mcfinnigan

+11

您確定這是[方法簽名](http://svnkit.com/javadoc/org/tmatesoft/svn/core/io/SVNRepository.html)? –

+0

「ClassCastException不提供任何有關它所期望的類的信息。」這非常適得其反。您應該提供實際的錯誤信息,並讓其他人決定它是否包含有用的信息,而不是嘗試總結您說不明白的錯誤消息。 – amalloy

回答