-
- 所有已知实现类:
-
CompositeDataInvocationHandler
,EventHandler
,MBeanServerInvocationHandler
,RemoteObjectInvocationHandler
public interface InvocationHandler
InvocationHandler
是由代理实例的调用处理程序实现的接口。每个代理实例都有一个关联的调用处理程序。 在代理实例上调用方法时,方法调用将被编码并调度到其调用处理程序的
invoke
方法。- 从以下版本开始:
- 1.3
- 另请参见:
-
Proxy
-
-
方法详细信息
-
invoke
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.Error
。 如果此方法抛出了一个不能分配给接口方法的throws
子句中声明的任何异常类型的已检查异常,那么包含此方法抛出的异常的UndeclaredThrowableException
将被方法调用抛出。代理实例。 - 另请参见:
-
UndeclaredThrowableException
-
-