The parentheses of methods without parameters could not be ommitted.
`[1, 2, 3].size` is accessing the private field `size` of `ArrayList`, so illegal reflective access warning will be thrown. Cheers, Daniel Sun On 2020/08/01 00:49:54, paul <pl.grue...@gmail.com> wrote: > Hi all, > > (on latest groovy 3.0.5 and OpenJDK 14) omitting the empty parentheses to the > .size() call works, but throws an illegal reflective access warning: > > ``` > groovy:000> [1,2,3].size > WARNING: An illegal reflective access operation has occurred > WARNING: Illegal reflective access by > org.codehaus.groovy.reflection.ReflectionUtils > (file:/home/paul/.sdkman/candidates/groovy/3.0.5/lib/groovy-3.0.5.jar) to > field java.util.ArrayList.size > WARNING: Please consider reporting this to the maintainers of > org.codehaus.groovy.reflection.ReflectionUtils > WARNING: Use --illegal-access=warn to enable warnings of further illegal > reflective access operations > WARNING: All illegal access operations will be denied in a future release > ===> 3 > ``` > > Curiously, the size() method seems to be the only parameter-less method where > I can > omit the empty parentheses – all others throw a MissingPropertyException (as > expected). > > What is the desired behaviour, and why is it even working (albeit with > warnings) with .size ? > > > best > paul > -- > typed with Neo 2 -- an ergonomically optimized keyboard layout > for German, English, programming, and science > ❤ http://neo-layout.org > ❤ https://useplaintext.email > ❤ YY-MM-DD dates (ISO 8601/RFC 3339) > � UTF-8 encoding >