public interface InvocationHandler
InvocationHandler
是由代理实例的调用处理程序实现的接口 。
每个代理实例都有一个关联的调用处理程序。 当在代理实例上调用方法时,方法调用将被编码并分派到其调用处理程序的invoke
方法。
Proxy
Object invoke(Object proxy, 方法 method, Object[] args) throws Throwable
proxy
- 调用该方法的代理实例
method
-所述方法
对应于调用代理实例上的接口方法的实例。
方法
对象的声明类将是该方法声明的接口,它可以是代理类继承该方法的代理接口的超级接口。
args
-包含的方法调用传递代理实例的参数值的对象的阵列,或null
如果接口方法没有参数。
原始类型的参数包含在适当的原始包装器类的实例中,例如java.lang.Integer
或java.lang.Boolean
。
null
和接口方法的返回类型是基本类型,那么NullPointerException
将由代理实例的方法调用抛出。
如上所述,如果此方法返回的值,否则不会与接口方法的声明的返回类型兼容,一个ClassCastException
将代理实例的方法调用将抛出。
Throwable
- 从代理实例上的方法调用抛出的异常。
异常类型必须可以分配给接口方法的throws
子句中声明的任何异常类型java.lang.RuntimeException
检查的异常类型java.lang.RuntimeException
或java.lang.Error
。
如果检查的异常是由这种方法是不分配给任何的中声明的异常类型throws
接口方法的子句,则一个UndeclaredThrowableException
包含有由该方法抛出的异常将通过在方法调用抛出代理实例。
UndeclaredThrowableException