如何在Groovy变量中存储类的列表/数组?

如何在Groovy变量中存储类的列表/数组?,groovy,Groovy,我想将Java异常类的列表/数组(例如NullPointerException、一些自定义异常类等)存储到Groovy列表/数组中,但我一直遇到强制转换问题或MissingPropertyException: class Foo { Exception[] foo List bar def setFoo(Exception[] values) { this.foo = values } def setBar(List values) { this.bar

我想将Java异常类的列表/数组(例如NullPointerException、一些自定义异常类等)存储到Groovy列表/数组中,但我一直遇到强制转换问题或MissingPropertyException:

class Foo {
  Exception[] foo
  List bar

  def setFoo(Exception[] values) {
    this.foo = values
  }

  def setBar(List values) {
    this.bar = values
  }
}

f = Foo()
f.setFoo([NullPointerException.class])
f.setBar(Arrays.asList(NullPointerException.class))
但我似乎不能把它弄对。任何指针都是非常感谢的。谢谢

更改为

class Foo {
    Class[] foo
    List bar

    def setFoo(Class[] values) {
        this.foo = values
    }

    def setBar(List values) {
        this.bar = values
    }


}
    def f = new Foo()
    f.setFoo([NullPointerException.class] as Class[])
    f.setBar(Arrays.asList(NullPointerException.class))
foo应该是类的数组,而不是异常。Exception是Exception类的实例 您需要显式地将列表强制转换为类数组,这将为您完成从列表到数组的转换。 只需使用def list=[UserClass1,UserClass2]即可完成。在groovy中,偶数.class不是必需的

您的代码应该如下所示,这不是很简单吗

class Foo {
  def bar
}

def f = new Foo(bar: [NullPointerException, RuntimeException])
assert f.bar instanceof List<Class>
assert (f.bar as Class[]) instanceof Class[]
你可以在网上快速试用