2014-11-05 18 views
1

代码:Clojure中不能调用createTempDirectory Clojure中

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

有错误:

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

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

没有为createTempDirectory一个字符串参数,我'm using java 1.7.0

+1

从clojure中调用具有可变参数的java方法时,不能省略变量参数。您必须将'FileAttribute'的数组作为第二个参数,请参阅http://stackoverflow.com/questions/11702184/how-to-handle-java-variable-length-arguments-in-clojure。 – ymonad 2014-11-05 02:54:03

+0

谢谢@ymonad,那应该是对的 – 2014-11-05 03:25:02

回答

3

试试这个代码:

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

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

+0

工程很好,谢谢 – 2014-11-05 06:11:52