asType似乎不适用于Groovy中的枚举
作为前言,我对Groovy/Java/JVM语言相当陌生 我尝试过编写枚举,在本例中使用as运算符可以轻松地反序列化为其他基本类型的整数。Groovy文档说,这是通过在类上定义一个asType方法来完成的,我假设枚举在名词王国中计数,但我得到GroovyCastException,并且我的IDE调试器不会在asType方法内的断点处停止。以下是我的示例代码,其建模依据如下:asType似乎不适用于Groovy中的枚举,groovy,enums,Groovy,Enums,作为前言,我对Groovy/Java/JVM语言相当陌生 我尝试过编写枚举,在本例中使用as运算符可以轻松地反序列化为其他基本类型的整数。Groovy文档说,这是通过在类上定义一个asType方法来完成的,我假设枚举在名词王国中计数,但我得到GroovyCastException,并且我的IDE调试器不会在asType方法内的断点处停止。以下是我的示例代码,其建模依据如下: 我在Grails控制台中运行了这个,并在那里得到了错误。这是在尝试在我的项目中编写代码并在控制台中进行测试之后。对我来说也
我在Grails控制台中运行了这个,并在那里得到了错误。这是在尝试在我的项目中编写代码并在控制台中进行测试之后。对我来说也很好。。。旧的Groovy版本?Grails2.4.4。Groovy 2.3.7
enum Foo {
BLAH(1),
BLARG(2),
SNEH(3)
Integer flag
Foo(Integer flag) {
this.flag = flag
}
Object asType(Class clazz) {
if (clazz == Integer) {
flag
}
else {
super.asType(clazz)
}
}
}
Foo.BLAH as Integer
Foo.BLAH.asType(Integer)
// Both throw: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'BLAH' with class 'Foo' to class 'java.lang.Integer'