调用Groovy闭包时,导入的类如何在Groovy闭包中工作?

调用Groovy闭包时,导入的类如何在Groovy闭包中工作?,groovy,Groovy,我有一个Groovy闭包,它使用一些导入的类,如: import com.XXX Closure test = { a -> XXX(a) } test('some str') 导入的类XXX如何在闭包测试中工作,因为我从未在测试中定义过XXX。 在这种情况下,委托人和所有者指向当前脚本,但仍然不知道导入是如何工作的 谢谢此示例有效,请看一下如何指定导入语句的包结构: assert org.apache.commons.lang3.text.WordUtils.capitalizeF

我有一个Groovy闭包,它使用一些导入的类,如:

import com.XXX

Closure test = { a -> XXX(a) }

test('some str')
导入的类XXX如何在闭包测试中工作,因为我从未在测试中定义过XXX。 在这种情况下,委托人和所有者指向当前脚本,但仍然不知道导入是如何工作的


谢谢

此示例有效,请看一下如何指定导入语句的包结构:

assert org.apache.commons.lang3.text.WordUtils.capitalizeFully('groovy closure') == 'Groovy Closure'

import org.apache.commons.lang3.text.WordUtils
Closure test = { a -> WordUtils.capitalizeFully(a) }
assert test('groovy closure') == 'Groovy Closure'

我终于发现这是一个与Java相关的问题

Java中的“import”关键字是一种语法糖,它允许您声明一个没有完整路径名的类。编译类文件时,类名称将被编译器导入的完整路径替换


因此,在我的例子中,XXX将被编译为com.XXX内部闭包(不管它是Java还是Groovy类),并且它将在任何被调用的类中工作。

您有可以执行的示例吗?这是关于“导入”如何在生成的内部类中结束的吗?