【发布时间】:2015-12-16 14:15:14
【问题描述】:
我正在尝试使用 Paths 类中的静态方法并收到以下消息:
user=> (java.nio.file.Paths/get "/tmp" "test.db")
ClassCastException java.lang.String cannot be cast to [Ljava.lang.String; hacking-capital.core/eval8240 (form-init317418023117164331.clj:1)
它应该根据javadoc 工作,但没有。为什么? 我正在使用 Java HotSpot(TM) 64 位服务器 VM 1.8.0_66-b17、Linux 上的 Clojure 1.7.0
【问题讨论】:
-
我的猜测是第二个参数需要是一个数组。也许像
(java.nio.file.Paths/get "/tmp" (into-array String ("test.db))? -
String... more是一个vargs参数,其处理方式类似于数组。 @assylias 已经提到过 -
你说的都对:
(java.nio.file.Paths/get "/tmp" (into-array String ["test.db"])) #object[sun.nio.fs.UnixPath 0x6099a03 "/tmp/test.db"]