如何将Groovy String集合转换为Java String Array?

Kev*_*ams 45 collections groovy

我试图从Groovy类中调用Java类的方法.Java方法有一个String数组作为参数,我的Groovy类中有一个字符串集合.如何将Groovy集合转换为Java String数组?

Java方法:

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

  }
}
Run Code Online (Sandbox Code Playgroud)

Groovy代码

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

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

cha*_*wit 92

要正确,def data = ["a","b","c"]它是一个List,而不是一个数组.

试试这样投射:

def data = ["a","b","c"] as String[]
Run Code Online (Sandbox Code Playgroud)

  • 我知道有些东西比(String [])data.toArray(new String [data.size])更有趣!谢谢! (4认同)