Как преобразовать коллекцию Groovy String в массив строк Java?

Я пытаюсь вызвать метод для класса Java из класса Groovy. У метода Java есть массив String в качестве параметра, а у меня есть коллекция Strings в моем классе Groovy. Как преобразовать коллекцию Groovy в массив строк Java?

Метод Java:

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

  }
}

Groovy код

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

  def doSomething = {
    def javaClass = new SomeJavaClass()
    javaClass(data) //Groovy passes ArrayList, Java class expects String[] ???
  }
}

person Kevin Williams    schedule 20.02.2009    source источник


Ответы (1)


Чтобы быть правильным, def data = ["a","b","c"] это список, а не массив.

Просто попробуйте кастинг вот так:

def data = ["a","b","c"] as String[]
person chanwit    schedule 20.02.2009
comment
Я знал, что есть что-то более интересное, чем (String []) data.toArray (new String [data.size]) Спасибо !!! - person Kevin Williams; 20.02.2009