Java Proxy getInvocationHandler()方法

java.lang.reflect.Proxy.getInvocationHandler(Object proxy)方法返回指定代理实例的调用处理程序。

1 语法

public static InvocationHandler getInvocationHandler(Object proxy)
   throws IllegalArgumentException

2 参数

proxy :代理实例返回的调用处理程序。

3 返回值

代理实例的调用处理程序。

4 示例 

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * Java Proxy getInvocationHandler()方法
 */
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class ProxyDemo {
    public static void main(String[] args) throws IllegalArgumentException {
        InvocationHandler handler = new SampleInvocationHandler();
        SampleInterface proxy = (SampleInterface) Proxy.newProxyInstance(
                SampleInterface.class.getClassLoader(),
                new Class[] { SampleInterface.class }, handler);
        Class invocationHandler = Proxy.getInvocationHandler(proxy).getClass();

        System.out.println(invocationHandler.getName());
    }
}

class SampleInvocationHandler implements InvocationHandler {

    @Override
    public Object invoke(Object proxy, Method method, Object[] args)
            throws Throwable {
        System.out.println("Welcome To Yiidian.com");
        return null;
    }
}

interface SampleInterface {
    void showMessage();
}

class SampleClass implements SampleInterface {
    public void showMessage() {
        System.out.println("Hello World");
    }
}

输出结果为:

com.yiidian.SampleInvocationHandler

 

热门文章

优秀文章