我想将一个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))
但我似乎无法做到正确。非常感谢任何指针。谢谢!
答案 0 :(得分:1)
对
的更改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
应该是Class
而不是Exception
的数组。 (Exception
是异常类的实例)答案 1 :(得分:0)
只需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[]
您可以在线快速尝试 demo