Since Groovy allows you to use Strings as property names this in turns allows you to dynamically create method and property names at runtime.
To create a method with a dynamic name simply use Groovy's feature of reference property names as strings. You can combine this with Groovy's string interpolation (Gstring) to create method and property names on the fly:
The same concept can be applied to static methods and properties.
A more elaborate example
* Get All Classes Within A Package
* Strings and GString