57

I'm trying to call a methond on a Java class from a Groovy class. The Java method has a String array as a parameter, and I have a collection of Strings in my Groovy class. How do I convert the Groovy collection to a Java String array?

Java Method:

public class SomeJavaClass{
  public void helpDoSomething(String[] stuff){

  }
}

Groovy code

class SomeGroovyClass {
  def data = ["a", "b", "c"]

  def doSomething = {
    def javaClass = new SomeJavaClass()
    javaClass(data) //Groovy passes ArrayList, Java class expects String[] ???
  }
}
Gilles Gouaillardet
  • 8,193
  • 11
  • 24
  • 30
Kevin Williams
  • 2,588
  • 3
  • 24
  • 25

1 Answers1

113

To be correct, def data = ["a","b","c"] it is a List, not an array.

Just try casting like this:

def data = ["a","b","c"] as String[]
chanwit
  • 3,174
  • 2
  • 23
  • 20