2014-11-20 119 views
2

以下两个类在同一封装中:Groovy的导入静态嵌套类

Imported.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.MultipleCompilationErrorsException: startup failed: 
/tmp/Main.groovy: 5: unable to resolve class Imported.Inner 
@ line 5, column 5. 
     new Imported.Inner() 
    ^

1 error 

发生这种情况的原因是什么?如何正确导入静态嵌套类?

回答

0

刚编译Imported.groovygroovyc Imported.groovy这样你就有了Imported.classImported$Inner.class

然后只需调用groovy Main.groovy它应该工作。

如果您想拥有一些“导入/包含”功能,请检查Including a groovy script in another groovyhow to simply import a groovy file in another groovy script

+0

谢谢jalopaba。为什么这里需要编译?例如。 '新的Imported()'不需要编译。另外,使用'groovysh'时这不是一个可行的解决方案。 – 2014-11-20 17:08:32

+0

也许这是脚本编译过程中的一个错误,但我不确定。内部类通常是常规问题。 – jalopaba 2014-11-20 18:02:29

+0

如果嵌套类已被编译?我正在使用第三方库。 – ricardogobbo 2016-06-17 12:10:13