Generics 将泛型类参数传递给方法时,Groovy上的StackOverflowerError
我正在使用启用Groovy插件的Intellij IDEA 12。 我得到StackOverflowerr关于这个案子的消息: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
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)