Groovy导入静态嵌套类
同一软件包中的以下两个类: 进口的。groovyGroovy导入静态嵌套类,groovy,Groovy,同一软件包中的以下两个类: 进口的。groovy class Imported { static class Inner { } } Main.groovy import Imported class Main { static main(args) { new Imported.Inner() } } 运行时: $ groovy Main.groovy org.codehaus.groovy.control.MultipleCompilationErrorsExc
class Imported {
static class Inner {
}
}
Main.groovy
import Imported
class Main {
static main(args) {
new Imported.Inner()
}
}
运行时:
$ groovy Main.groovy
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/tmp/Main.groovy: 5: unable to resolve class Imported.Inner
@ line 5, column 5.
new Imported.Inner()
^
1 error
发生这种情况的原因是什么?如何正确导入静态嵌套类?只需编译
Imported.groovy
:groovyc Imported.groovy
,就可以导入Imported.class
和Imported$Inner.class
然后只需调用groovy Main.groovy
,它就可以工作了
如果您想拥有一些“导入/包含”功能,请选中并重试。谢谢jalopaba。为什么这里需要编译?例如,
newimported()
无需编译即可工作。另外,当使用groovysh
时,这也不是一个可行的解决方案。也许这是脚本编译过程中的一个bug,但我不确定。在groovy中,内部类通常是个问题。如果嵌套类已经编译好了?我正在使用第三方库。