当我在 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/