Search

Dark theme | Light theme

November 8, 2009

Groovy Goodness: Using def to Define a Variable

Groovy has the def keyword to replace a type name when we declare a variable. Basically it means we don't really want to define the type ourselves or we want to change the type along the ride.

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def myvar = 42
assert myvar instanceof Integer
 
myvar = 'I am a String'  // String assignment changes type.
assert myvar instanceof String
 
String s = 'I am String'
assert s instanceof String
 
s = new Integer(100// Surprise, surprise, value is converted to String!
assert s instanceof String
 
int i = 42
assert i instanceof Integer
 
try {
    i = 'test'  // Cannot assign String value to Integer.
} catch (e) {
    assert e instanceof org.codehaus.groovy.runtime.typehandling.GroovyCastException
}