This can be used to intercept method calls and do work around them, redirect work, or block calls entirely.
Dispatch the method and arguments to this object.parammethod a method defined in class {@code T}paramargs arguments corresponding to said {@code method}returnthe object returned when invoking {@code method}throwsThrowable any exception that might have been raised while invoking the method