`
cywhoyi
  • 浏览: 413392 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Client客户端调用

    博客分类:
  • JAVA
阅读更多

import java.lang.reflect.Method;

import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.Callback;
import net.sf.cglib.proxy.NoOp;
import net.sf.cglib.proxy.CallbackFilter;

public class MultiCallBack
{
   
    /**
     * CallbackFilter过滤不需要的代理对象
     *
     * @param args [参数说明]
     *
     * @return void [返回类型说明]
     * @exception throws [违例类型] [违例说明]
     * @see [类、类#方法、类#成员]
     */
    public static void main(String[] args)
    {
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(Monkey.class);
        enhancer.setCallbacks(new Callback[] {new MyMethodInterceptor(), NoOp.INSTANCE});
        enhancer.setCallbackFilter(new CallbackFilter()
        {
        /**
         * 通过方法名判断是否需要代理
         */      
            public int accept(Method arg0)
            {
                // 方法getType使用回调组中的第二个回调器
                if (arg0.getName().equals("getType"))
                    return 1;
                else
                    return 0;
            } 
        });
        Monkey monkey = (Monkey)enhancer.create();
        monkey.getType();
        monkey.eat();
        monkey.getClass();
        monkey.show();
        monkey.speak("火星语");
       // monkey.speak2("英语");
    }
   
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics