【发布时间】:2011-11-18 09:47:53
【问题描述】:
我想调用一个带有以下签名的 Java 函数(由 SVNKit 提供):
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。当我忽略它(使用 nil 而不是属性)时,它可以正常工作。 ClassCastException 没有提供任何关于它所期望的类的信息。
有什么想法吗?
【问题讨论】:
-
这可能是一个愚蠢的问题 - 但你确定 getFile 方法中的 Map 接口是 java.util.Map 吗?
-
你确定那是the method signature?
-
“ClassCastException 没有提供任何关于它所期望的类的信息。”这是非常适得其反的。不要试图总结你说你不理解的错误信息,你应该提供实际的错误信息,让其他人决定它是否包含有用的信息。