droid_wrap::java::lang::reflect

Trait InvocationHandler

Source
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§

Source

const CLASS: &'static str = "java/lang/InvocationHandler"

java/lang/InvocationHandler

Source

const OBJECT_SIG: &'static str = "Ljava/lang/InvocationHandler;"

Ljava/lang/InvocationHandler;

Source

const DIM: u8 = 0u8

数组维度

Required Methods§

Source

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.

Implementors§