public T invoke ( RT receiver , Object ... arguments ) { assert receiver != null ; final Method method ; synchronized ( this ) { if ( this . method == null ) { this . method = getMethod ( receiver , arguments ) ; method = this . method ; } else { method = this . method ; } } try { return this . returnType . cast ( method . invoke ( receiver , arguments ) ) ; } catch ( RuntimeException | Error exception ) { throw exception ; } catch ( Throwable exception ) { throw new RuntimeException ( exception ) ; } }
Invoke the method .