We can change the type of objects with the as
keyword in Groovy. We can even make maps and closure look like interface implementations when we use as
. Furthermore we can use as
to create an alias for an import statement.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import java.text.MessageFormat as mf // Alias mf // Use alias and use as to convert list to Object[]: assert 'Simple message!' == mf.format( 'Simple {0}!' , [ 'message' ] as Object[]) // Normal Groovy list: def intList = [ 1 , 2 , 3 , 4 ] assert 'java.util.ArrayList' == intList. class .name assert 4 == intList. size () // Coerse to int[]: def intArray = intList as int [] assert 'java.util.ArrayList' != intArray. class .name assert 4 == intArray.length // Use int[] property. // Use as to create Date object from list: def date = [ 109 , 8 , 6 ] as Date assert 2009 == date[Calendar.YEAR] assert 8 == date[Calendar.MONTH] assert 6 == date[Calendar.DATE] // Use as to treat closure as implementation for // the Runnable interface: def t = new Thread({ println 'hello' } as Runnable) t.start() // Output: hello // Use as to treat map as implementation for // the Runnable interface: def t2 = new Thread([run: { println 'hello' }] as Runnable) t2.start() // Output: hello |