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.

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
}