All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jquicker.context.bean.ProxyFactory Maven / Gradle / Ivy

There is a newer version: 1.1.0
Show newest version
package com.jquicker.context.bean;

import java.lang.reflect.Proxy;

import com.jquicker.aop.Advice;

/**
 * @author OL
 */
public class ProxyFactory {

	/**
	 * 注意:用父类接收其子类的代理对象会抛ClassCastException
* 用接口接收其实现类人代理对象则可行 * @param target * @param advice * @return * @author OL */ @SuppressWarnings("unchecked") public static T newProxyInstance(Object target, Advice advice) { return (T) Proxy.newProxyInstance(ProxyFactory.class.getClassLoader(), target.getClass().getInterfaces(), advice); } @SuppressWarnings("unchecked") public static T newProxyInstance(Class[] interfaces, Advice advice) { /** * loader:  一个ClassLoader对象,定义了由哪个ClassLoader对象来对生成的代理对象进行加载 * interfaces:  一个Interface对象的数组,表示的是我将要给我需要代理的对象提供一组什么接口,如果我提供了一组接口给它,那么这个代理对象就宣称实现了该接口(多态),这样我就能调用这组接口中的方法了 * h:  一个InvocationHandler对象,表示的是当我这个动态代理对象在调用方法的时候,会关联到哪一个InvocationHandler对象上 */ return (T) Proxy.newProxyInstance(ProxyFactory.class.getClassLoader(), interfaces, advice); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy