nha nha - 1 year ago 39
Java Question

How do I pass a Java function a String[] argument?

I have a function in Java that I would like to call from Clojure. The particular prototype is the following:

public MyClass create(String aaa, File bbb, String[] args)

I therefore need to pass a
as a parameter, from a Clojure function. Passing any of the following:

  • (def args

  • (def args

  • (def args ^String [])

all yield an exception:
No matching method found: createScript for class BlaBla..

I have also seen this Java interop documentation, but I am probably missing something. How do I call this method from Clojure?

(.create (MyClass.) "aaa" (File. "my file") (into-array ["foo" "bar" "baz"]))

Should do the trick.

See https://clojuredocs.org/clojure.core/into-array for more details.