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

标签 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 类,即使它们都在同一个包中?

最佳答案

遗憾的是,这个问题并没有真正完整回答它所需的信息。但我可以告诉以下内容。如果您创建一个目录 ./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 的根目录不同,并且您没有将两者都提供给编译器,那么它肯定会失败。

我不知道这是否是原因,所以我希望这个答案更多地被理解为指向可能错误的指针。希望这有帮助

关于Groovy:为什么同一个包中的类需要导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888049/

相关文章:

grails - 如何使用 GPars 和 Groovy 从并行运行的任务中收集数据

groovy - 在 Groovy 中强制指定参数

java - 尝试使用 groovy 脚本运行程序在 JIRA 中删除时出现 NullPointerException

java - 如何模拟 Groovy 中 Traits 提供的方法/函数

java - Groovy 可以动态添加或覆盖 POJO 上的方法吗?

grails - 使用Realm + RABBIT MQ进行Groovy Httpbuilder身份验证

android - gradle 执行过程错误流

grails - Grails中的域类迭代

java - 比较目录中的 jar 证书

grails - 在 grails 中对引用列表进行排序