groovy
def numbers = [1, 2, 3, 4, 5]
def evenNumbers = numbers.findAll { it % 2 == 0 }
assert evenNumbers == [2, 4]
groovy
def withConnection(@DelegatesTo(DatabaseConnection) Closure closure) {
def dbConnection = new DatabaseConnection()
closure.delegate = dbConnection
closure.resolveStrategy = Closure.DELEGATE_FIRST
closure.call()
}
withConnection {
executeQuery('SELECT * FROM users')
}
groovy
class LoggerInterceptor {
def intercept(Method method, Object[] args, Object target) {
println("Before method ${method.name} is invoked")
method.invoke(target, args)
println("After method ${method.name} is invoked")
}
}
class MyClass {
@LoggerInterceptor
void myMethod() {
println("Executing myMethod")
}
}
def myInstance = new MyClass()
myInstance.myMethod()
groovy
def user = getUser()
def email = user?.getEmail()?.toLowerCase()