Groovy will let you call toString() on a null object. The result is the word ‘null’, which might be what you’re expecting if you know the object is null, but probably isn’t what you’re expecting if you don’t.
So if you’re, say, binding a SQL parameter and you forget to check for nulls like you would in Java, and you forget to use a null-safe operator like you should in Groovy, and you get a null value, what happens? Does groovy…
- Throw a NullPointerException like Java?
- Set the field to null?
Neither. It sets the field to the string ‘null’.
Make sure to use
myVariable?.toString() instead of
myVariable.toString() for cases like this!