Ao usar @TypeChecked
ou @CompileStatic
, o Groovy instanceof
lança automagicamente o objeto dentro do if
bloco:
import groovy.transform.TypeChecked as TC
@TC class Instanceof {
static main(args) {
def foo = new Foo(bar: "bar bar")
assert new Instanceof().foobar(foo) == "bar bar"
}
def foobar(foo) {
if (foo instanceof Foo) {
foo.bar // no need to cast :-)
}
}
}
@TC class Foo { String bar }