【问题标题】:Can't call createTempDirectory in Clojure [duplicate]无法在 Clojure 中调用 createTempDirectory [重复]
【发布时间】:2014-11-05 02:37:26
【问题描述】:

clojure 中的代码:

(import '(java.nio.file Files))
(Files/createTempDirectory "Test")

有错误:

CompilerException java.lang.IllegalArgumentException: No matching method: createTempDirectory, compiling:xxxx

但是在java的文档http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#createTempDirectory(java.lang.String,%20java.nio.file.attribute.FileAttribute...)

createTempDirectory有一个String参数,我用的是java 1.7.0

【问题讨论】:

  • 从 clojure 调用带有可变参数的 java 方法时,不能省略可变参数。您必须将FileAttribute 的数组作为第二个参数,请参阅stackoverflow.com/questions/11702184/…
  • 感谢@ymonad,应该是对的

标签: java clojure


【解决方案1】:

试试这个代码:

(java.nio.file.Files/createTempDirectory "Test"
  (into-array java.nio.file.attribute.FileAttribute []))

正如@ymonad 所提到的,在使用可变参数调用java 方法时不能省略可变参数。如果不想指定FileAttribute,只需传递该类型的空数组即可。

【讨论】:

    猜你喜欢
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2021-11-13
    • 2011-09-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多