private static Object invokeDefault ( final Object proxy , final Method method , final Object [ ] args ) { final Class < ? > declaringClass = method . getDeclaringClass ( ) ; try { return lookupIn ( declaringClass ) . unreflectSpecial ( method , declaringClass ) . bindTo ( proxy ) . invokeWithArguments ( args ) ; } catch ( Throwable throwable ) { throw new RuntimeException ( throwable ) ; } }
Invokes a default method . Default methods are implemented in an interface which is overrided by applying the interface to the proxy . This method allows to invoke the default method on the proxy itselfs bypassing the overriden method .