If Groovy knows the return type of a method it will automatically cast our return value to that type. We don't have to explicitly cast our value.
String simple() {
42
}
assert 'java.lang.String' == simple().class.name
assert '42' == simple()
class User {
String name, email
}
User createUser() {
[name: 'mrhaki', email: 'mail@host.com']
}
assert createUser() instanceof User
assert 'mrhaki' == createUser().name
assert 'mail@host.com' == createUser().email