2014-11-05 2 views
1

кодекса в Clojure:Невозможно вызвать createTempDirectory в 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, я 'm, используя java 1.7.0

+1

При вызове метода java с переменными аргументами из clojure вы не можете опустить аргумент переменной. вам нужно передать массив «FileAttribute» в качестве второго аргумента, см. http://stackoverflow.com/questions/11702184/how-to-handle-java-variable-length-arguments-in-clojure. – ymonad

+0

спасибо @ymonad, что должно быть правильно –

ответ

3

Код:

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

Как упоминалось в @ymonad, вы не можете опустить аргумент переменной при вызове метода java с переменными аргументами. Если вы не хотите указывать FileAttribute, просто передайте пустой массив этого типа.

+0

работает красиво, спасибо –

Смежные вопросы