2009-02-20 8 views
35

J'essaie d'appeler un methond sur une classe Java à partir d'une classe Groovy. La méthode Java a un tableau String en paramètre, et j'ai une collection de Strings dans ma classe Groovy. Comment puis-je convertir la collection Groovy en un tableau de chaînes Java?Comment convertir une collection Groovy String en Java String Array?

Java Méthode:

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

    } 
} 

Code Groovy

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

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

Répondre

76

Pour être correct, il est def data = ["a","b","c"] une liste, pas un tableau.

juste essayer casting comme ceci:

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

Je savais qu'il y avait quelque chose que groovy (String []) data.toArray (new String [data.size]) Merci !!! –