您好,欢迎访问一九零五行业门户网

java之JDK动态代理实例分析

1、说明
java中提供了一个动态代理类 proxy,proxy 并不是我们所说的代理对象的类,而是提供了一个创建代理对象的静态方法(newproxyinstance)来获取代理对象。
2、实例
public class helloworld {    public static void main(string[] args) {        // 获取代理对象        proxyfactory factory = new proxyfactory();                selltickets proxyobject = factory.getproxyobject();                proxyobject.sell();    }} // 卖票接口interface selltickets {    void sell();} // 火车站,火车站具有卖票功能,所以需要实现selltickets接口class trainstation implements selltickets {    @override    public void sell() {        system.out.println(火车站卖票);    }} // 代理工厂,用来创建代理对象class proxyfactory {    private trainstation station = new trainstation();     public selltickets getproxyobject() {        // 使用proxy获取代理对象         /**         * newproxyinstance() 方法参数说明:         *  classloader loader: 类加载器,用于加载代理类,使用真实对象的类加载器即可         *  class<?>[] interfaces:真实对象所实现的接口,代理模式真实对象和代理对象实现相同的接口         *  invocationhandler h:代理对象的调用处理程序         */         selltickets selltickets = (selltickets) proxy.newproxyinstance(                station.getclass().getclassloader(),                new invocationhandler() {                    /**                     * invocationhandle中invoke方法参数说明:                     *  proxy:代理对象                     *  method:对应于在代理对象上调用的方法的method实例                     *  args:代理对象调用接口方法是传递的实际参数                     */                                        public object invoke(object proxy, method method, object[] args) throws throwable {                        system.out.println(代理点收取一些服务费用(jdk动态代理方法));                                                // 执行真实对象                        object result = method.invoke(station, args);                        return result;                    }                });        return selltickets;    }}
以上就是java之jdk动态代理实例分析的详细内容。
其它类似信息

推荐信息