如何在Groovy变量中存储类的列表/数组?
我想将Java异常类的列表/数组(例如NullPointerException、一些自定义异常类等)存储到Groovy列表/数组中,但我一直遇到强制转换问题或MissingPropertyException:如何在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
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[]
你可以在网上快速试用