groovy - 为什么我在 GroovyConsole 中收到 MissingPropertyException?

标签 groovy groovy-console

当我在 GroovyConsole 中执行以下脚本时,它给了我一个 MissingPropertyException 但我不明白为什么:

def a = 'A'
def b() {
    println a
}
b()

抛出以下异常:

groovy.lang.MissingPropertyException: No such property: 
    a for class: ConsoleScript18
at ConsoleScript18.b(ConsoleScript18:3)
at ConsoleScript18.run(ConsoleScript18:5)

最佳答案

其背后的原因是,当您在函数外部编写任何内容而没有在 groovy 中声明任何类时,它会被移至主函数。

因此变量a的范围仅限于您试图在另一个函数b()中访问的函数main()同类。但由于类没有属性a,它会抛出MissingPropertyException

关于groovy - 为什么我在 GroovyConsole 中收到 MissingPropertyException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32221210/

相关文章:

grails - 使用Groovy读取输入xml和构造输出xml时出错

grails - 您如何在Grails/Spock测试中而不是在org.grails.plugins.testing.GrailsMockHttpServletResponse@62c0fcae中打印响应

java - 如何给 groovy 闭包参数一个类型

grails - Groovy 脚本向 Grails Web App 发送多部分请求以进行测试

java - 我可以在 DateTimeFormatterBuilder 的格式之间切换吗?

email - grails 邮件 : render profile pictures from database in email

gradle - GroovyConsole 运行 build.gradle

groovy - 在运行时获取 groovy 源文件的路径

grails - 对grails的 Ant 调用因 “[exec] Application is pre-Grails 0.5, please run: grails upgrade”而失败

groovy - 我们可以让这个片段更精彩吗?