2014-11-05 17 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