Am 15.12.2017 um 14:35 schrieb Winnebeck, Jason:
It’s been like this for as long as I’ve been using compile static in Groovy. I assumed that was expected behavior and I make sure to point it out to all new developers in our project as one of the Groovy gotchas. Is it not supposed to be that way?

Afaik it is supposed to be this way for technical reasons

Not failing invocation on null means to not be able to use direct method calls in static compiled code. And while they do not have to be as dynamic as in standard Groovy, you would have to make them at least with invokedynamic. And that is because if I tell the JVM to invoke String#length(), it does not like to get NullObject instead of a String.

in summary:
If we want to keep static Groovy near Java as much as possible, we pay this for example with the NPE here.

bye Jochen

Reply via email to