Вот суть того, чего я не понимаю:
% groovysh
Groovy Shell (1.8.6, JVM: 1.6.0_21)
Type 'help' or '\h' for help.
------------------------------------------------------
groovy:000> class vars {
groovy:001> static int x = 1;
groovy:002> }
===> true
groovy:000> println new vars().x
1
===> null
groovy:000> println vars.x
ERROR groovy.lang.MissingPropertyException:
No such property: vars for class: groovysh_evaluate
Possible solutions: class
at groovysh_evaluate.run (groovysh_evaluate:2)
...
Если vars
разрешается во что-то в выражении new vars().x
, то почему не разрешается и в выражении vars.x
? Это похоже на фантомный идентификатор, который на самом деле существует только для целей инстанцирования.