pub trait InvocationHandler:
JObjRef
+ JObjNew
+ PartialEq
+ Debug {
const CLASS: &'static str = "java/lang/InvocationHandler";
const OBJECT_SIG: &'static str = "Ljava/lang/InvocationHandler;";
const DIM: u8 = 0u8;
// Required method
fn invoke(proxy: &Object, method: &Method, args: &[Object]);
}
Expand description
InvocationHandler 是代理实例的调用处理程序实现的接口。每个代理实例都有一个关联的调用处理程序。当在代理实例上调用方法时,方法调用将被编码并分派到其调用处理程序的invoke方法。
Provided Associated Constants§
Sourceconst OBJECT_SIG: &'static str = "Ljava/lang/InvocationHandler;"
const OBJECT_SIG: &'static str = "Ljava/lang/InvocationHandler;"
Ljava/lang/InvocationHandler;
Required Methods§
Sourcefn invoke(proxy: &Object, method: &Method, args: &[Object])
fn invoke(proxy: &Object, method: &Method, args: &[Object])
处理代理实例上的方法调用并返回结果。当在与其关联的代理实例上调用方法时,将在调用处理程序上调用此方法。
返回:从代理实例上的方法调用返回的值。如果接口方法声明的返回类型是原始类型,则此方法返回的值必须是相应原始包装器类的实例;否则,它必须是可分配给声明的返回类型的类型。如果此方法返回的值为 null,并且接口方法的返回类型为原始类型,则代理实例上的方法调用将抛出 NullPointerException。如果此方法返回的值与接口方法声明的返回类型不兼容(如上所述),则代理实例上的方法调用将抛出 ClassCastException。
抛出:Throwable – 代理实例上的方法调用抛出的异常。异常的类型必须可分配给接口方法的 throws 子句中声明的任何异常类型,或可分配给未经检查的异常类型 java.lang.RuntimeException 或 java.lang.Error。如果此方法抛出的已检查异常无法分配给接口方法的 throws 子句中声明的任何异常类型,则代理实例上的方法调用将抛出包含此方法抛出的异常的 UndeclaredThrowableException。
proxy
调用该方法的代理实例
method
与在代理实例上调用的接口方法相对应的 Method 实例。Method 对象的声明类将是声明该方法的接口,该接口可能是代理类通过其继承方法的代理接口的超接口。
args
包含代理实例上的方法调用中传递的参数值的对象数组,如果接口方法不带参数,则为 null。原始类型的参数包装在适当的原始包装器类的实例中,例如 java.lang.Integer 或 java.lang.Boolean。
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.