You can pass in a length 0 array of java.nio.file.attribute.FileAttribute's 
like so:

(java.nio.file.Files/createTempDirectory "mytempname" (make-array 
java.nio.file.attribute.FileAttribute 0))

Andy


On Dec 10, 2012, at 8:54 PM, Dave Kincaid wrote:

> I just came across this same problem while trying to use Java 7's 
> java.nio.file.Files.createTempDirectory() 
> (http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#createTempDirectory(java.lang.String,
>  java.nio.file.attribute.FileAttribute...))
> 
> Clojure won't let me just do (java.nio.file.Files/createTempDirectory "mydir")
> 
> It wants the FileAttribute argument. Can anyone help me get past this? I'm 
> stuck since I really can't figure out how to create a FileAttribute. Am I 
> better off just using Apache commons or something like that?
> 
> On Monday, September 27, 2010 7:20:04 PM UTC-5, ataggart wrote:
> The vararg at the end of the method is just syntactic sugar for an 
> array, so the "add" method actually takes 4 args, the last being a 
> Resource array.  The java compiler just replaces "missing" varargs 
> with an empty array. 
> 
> My guess is that the reflection mechanisms in the compiler just look 
> at type/arity.  The Method object has a isVarArg() boolean, so that 
> could be used to allow omitting varargs altogether.  That would need 
> to be an enhancement to the clojure compiler, so I opened a ticket: 
> 
> https://www.assembla.com/spaces/clojure/tickets/440-java-method-calls-cannot-omit-varargs
>  
> 
> 
> On Sep 27, 1:16 pm, JonathanBelolo <jonat...@scorpiomusic.fr> wrote: 
> > While toying with the Sesame2.3 library, I've come across the 
> > following behavior for the first time. 
> > 
> > This is taken from the api doc for 
> > org.openrdf.repository.base.RepositoryConnectionBase: 
> > 
> > add(Resource subject, URI predicate, Value object, Resource... 
> > contexts) 
> >           Adds a statement with the specified subject, predicate and 
> > object to this repository, optionally to one or more named contexts. 
> > 
> > But apparently, Clojure seems to think the optional args are 
> > mandatory... 
> > 
> > (.add con alice RDF/TYPE person) 
> > 
> > No matching method found: add for class 
> > org.openrdf.repository.sail.SailRepositoryConnection 
> >   [Thrown class java.lang.IllegalArgumentException] 
> > 
> > So I run 
> > 
> > (grep #".add" (.getMethods (.getClass con))) 
> > 
> > #<Method public void 
> > org.openrdf.repository.base.RepositoryConnectionBase.add(org.openrdf.model. 
> > Resource,org.openrdf.model.URI,org.openrdf.model.Value,org.openrdf.model.Re 
> > source[]) 
> > throws org.openrdf.repository.RepositoryException>) 
> > 
> > Finally the following works... 
> > 
> > (.add con alice RDF/TYPE person (make-array Resource 1)) 
> > nil 
> > 
> > Is this behavior normal? Are optional args mandatory when called with 
> > interop? 
> > 
> > Thanks for your help :) 
> > 
> > Jonathan
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to