2009-02-20 3 views
35

Я пытаюсь вызвать metond на классе Java из класса Groovy. Java-метод имеет массив String в качестве параметра, и у меня есть набор строк в моем классе Groovy. Как преобразовать коллекцию Groovy в массив строк Java?Как преобразовать массив Groovy String в массив строк 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[] ??? 
    } 
} 

ответ

76

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

Просто попробуйте литья, как это:

def data = ["a","b","c"] as String[] 
+4

Я знал, что там было что-то groovier чем (String []) data.toArray (новый String [data.size]) Спасибо !!! –