Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asType似乎不适用于Groovy中的枚举_Groovy_Enums - Fatal编程技术网

asType似乎不适用于Groovy中的枚举

asType似乎不适用于Groovy中的枚举,groovy,enums,Groovy,Enums,作为前言,我对Groovy/Java/JVM语言相当陌生 我尝试过编写枚举,在本例中使用as运算符可以轻松地反序列化为其他基本类型的整数。Groovy文档说,这是通过在类上定义一个asType方法来完成的,我假设枚举在名词王国中计数,但我得到GroovyCastException,并且我的IDE调试器不会在asType方法内的断点处停止。以下是我的示例代码,其建模依据如下: 我在Grails控制台中运行了这个,并在那里得到了错误。这是在尝试在我的项目中编写代码并在控制台中进行测试之后。对我来说也

作为前言,我对Groovy/Java/JVM语言相当陌生

我尝试过编写枚举,在本例中使用as运算符可以轻松地反序列化为其他基本类型的整数。Groovy文档说,这是通过在类上定义一个asType方法来完成的,我假设枚举在名词王国中计数,但我得到GroovyCastException,并且我的IDE调试器不会在asType方法内的断点处停止。以下是我的示例代码,其建模依据如下:


我在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'