MyTestClass1.groovy:
class MyTestClass1 {
public static enum MyEnum { a, b }
public static class MyInnerClass { void a() {} }
}
MyTestClass.groovy:
class MyTestClass {
void test(MyTestClass1 c) {}
void test2(MyTestClass1.MyEnum c) {}
void test3(MyTestClass1.MyInnerClass c) {}
}
groovyc -cp . MyTestClass.groovy
无法通过。 test2 / 3被标记为失败,因为编译器不知道类型。
是否有任何技巧可以编译?
答案 0 :(得分:3)
获得同样错误的唯一方法是编译MyTestClass
而不先编译MyTestClass1
。这里最简单的解决方案是编译所有:groovyc -cp . MyTestClass*.groovy
。
$ ls
MyTestClass.groovy MyTestClass1.groovy
$ groovyc -cp . MyTestClass.groovy
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
MyTestClass.groovy: 4: unable to resolve class MyTestClass1.MyEnum
@ line 4, column 20.
void test2(MyTestClass1.MyEnum c) {}
^
MyTestClass.groovy: 5: unable to resolve class MyTestClass1.MyInnerClass
@ line 5, column 17.
void test3(MyTestClass1.MyInnerClass c) {}
^
2 errors
$ groovyc -cp . MyTestClass1.groovy
$ groovyc -cp . MyTestClass.groovy
$ ls
MyTestClass.class MyTestClass.groovy MyTestClass1$MyEnum.class MyTestClass1$MyInnerClass.class MyTestClass1.class MyTestClass1.groovy