Groovy:为什么同一个包中的类需要Import?

时间:2014-01-02 17:14:08

标签: groovy

com.something

中的简单Groovy类
package com.something

class A {
}

同一个包中的另一个类

package com.something

class B {
    def variable=new A() //DOES NOT WORK TILL I EXPLICITLY say "import com.something.A"
}

为什么B类无法访问A类,即使它们都在同一个包中?

1 个答案:

答案 0 :(得分:1)

可悲的是,这个问题并没有完全回答所需的信息。但我可以告诉以下内容。如果你在那里创建一个目录./com/something/并输出A.groovy和B.groovy,然后使用命令行groovyc ./com/something/A.groovy ./com/something/B.groovy编译它们,那么这必须有效。到目前为止,目录并不重要,但如果更改为groovyc ./com/something/B.groovy,则会发生变化,因为现在groovyc必须“发现”A.groovy,并且需要正确的目录结构。

现在,groovyc的ant,gradle和maven版本通常如何工作是通过提供完整的源列表。如果不这样做,编译可能会失败。但是如果A和B的根目录不同并且你没有给编译器两者,那么肯定会失败。

我不知道是不是这个原因,所以我希望这个答案更容易被理解为可能出错的指针。希望这有帮助