Alternate Constructors in Groovy
14 September 2017
There are a variety of ways to construct objects in Groovy. We were looking for something more dynamic where we could parameterize the object to be constructed.
We found a couple different things that worked to instantiate an object:
import groovy.transform.* @ToString class MyClass { String first String last } def map = [first: 'f', last: 'l'] // instantiate from literal class reference println new MyClass(map) println MyClass.newInstance(map) println (map as MyClass) println map.asType(MyClass) // instantiate from a variable reference the class def clazz = MyClass println map.asType(clazz) // println (map as clazz) // 'as' operator doesn't like 'clazz' variable println clazz.newInstance(map)