【发布时间】:2011-08-04 01:22:47
【问题描述】:
我正在使用 JDK 7 中的 Java NIO.2 API。
特别想调用方法:Paths#get(String first, String... more)
这是一个静态方法,它至少接受一个字符串,并返回一个与之对应的 Path 对象。有一个重载的表单:Paths#get(URI uri)
但是,我似乎无法从 Clojure 调用 top 方法。我似乎能得到的最接近的是:
(Paths/get ^String dir-fq (object-array 0))
失败:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
如您所料。毕竟,我们将 Object[] 传递给期待 String[] 的东西。
我已经尝试删除 (object-array) 表单 - 但这只会导致 Clojure 尝试调用 get(URI) 方法 - 无论有没有类型提示。
将 nil 作为第二个参数传递给 Paths#get(String, String...) 会导致调用正确的方法,但 Java 7 随后会因 NPE 而失败。
我似乎无法在 Clojure 中找到表达 String[] 类型的方法 - 我猜我要么需要这样做,要么向调度系统提供提示。
有什么想法吗?
【问题讨论】: