2009-02-20 4 views
35

Ich versuche, ein Methond auf einer Java-Klasse aus einer Groovy-Klasse aufzurufen. Die Java-Methode hat ein String-Array als Parameter und ich habe eine Sammlung von Strings in meiner Groovy-Klasse. Wie konvertiere ich die Groovy-Sammlung in ein Java-String-Array?Wie konvertiere ich eine Groovy String Sammlung in ein Java String Array?

Java-Methode:

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[] ??? 
    } 
} 

Antwort

76

Um richtig zu sein, def data = ["a","b","c"] es ist eine Liste, kein Array.

versuchen Genau wie dieses Casting:

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

Ich wusste, dass es etwas grooviger als (String []) war data.toArray (new String [data.size]) Dank !!! –

Verwandte Themen