Generics 将泛型类参数传递给方法时,Groovy上的StackOverflowerError

Generics 将泛型类参数传递给方法时,Groovy上的StackOverflowerError,generics,groovy,intellij-idea,Generics,Groovy,Intellij Idea,我正在使用启用Groovy插件的Intellij IDEA 12。 我得到StackOverflowerr关于这个案子的消息: OItem.java: 问题就在这里。当该方法采用ROItem时,它编译: class MyScript { static void myMethod(ROItem orderItem) { //Empty inside } } 但是,当需要OItem时,Groovyc抛出一个错误: class MyScript { stat

我正在使用启用Groovy插件的Intellij IDEA 12。 我得到StackOverflowerr关于这个案子的消息:

OItem.java:

问题就在这里。当该方法采用
ROItem
时,它编译:

class MyScript {
    static void myMethod(ROItem orderItem) {
        //Empty inside
    }
}
但是,当需要
OItem
时,Groovyc抛出一个错误:

class MyScript {
    static void myMethod(OItem orderItem) {
        //Empty inside
    }
}
完整跟踪信息如下:

Groovyc: java.lang.StackOverflowError
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1127)
    at org.codehaus.groovy.ast.ClassNode.genericTypeAsString(ClassNode.java:1160)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1134)
    at org.codehaus.groovy.ast.ClassNode.genericTypeAsString(ClassNode.java:1160)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1134)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1120)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1139)
    ...
本部分重复257次:

    at org.codehaus.groovy.ast.ClassNode.genericTypeAsString(ClassNode.java:1160)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1134)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1120)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1139)

您使用的是什么版本的Groovy?您是指项目中的Groovy依赖关系吗?我猜是因为您的泛型是递归的,当它试图在您的TypesHanks中打印错误时失败了。在我的类型中有一个递归泛型:
O
用于
OItem
Order
两者。但是Groovy试图打印的错误是什么呢?我使用这些类型在Java中没有问题。看起来类似于和(链接丢失)GRECLIPSE-1234。
Groovyc: java.lang.StackOverflowError
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1127)
    at org.codehaus.groovy.ast.ClassNode.genericTypeAsString(ClassNode.java:1160)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1134)
    at org.codehaus.groovy.ast.ClassNode.genericTypeAsString(ClassNode.java:1160)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1134)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1120)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1139)
    ...
    at org.codehaus.groovy.ast.ClassNode.genericTypeAsString(ClassNode.java:1160)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1134)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1120)
    at org.codehaus.groovy.ast.ClassNode.toString(ClassNode.java:1139)