1. 程式人生 > >Java動態代理一——動態類Proxy的使用

Java動態代理一——動態類Proxy的使用

1 package com.ljq.test;
2 3 import java.lang.reflect.InvocationHandler;
4 import java.lang.reflect.Method;
5 6 /**7 * 實現在方法呼叫前後向控制檯輸出兩句字串
8 
9 @author jiqinlin
10 *
11 */12 publicclass HelloWorldHandler implements InvocationHandler{
13 //要代理的原始物件14 private Object obj;
15 16 public HelloWorldHandler(Object obj) {
17 super();
18 this.obj = obj;
19 }
20 21 /**22 * 在代理例項上處理方法呼叫並返回結果
23 
24 @param proxy 代理類
25 @param method 被代理的方法
26 @param args 該方法的引數陣列
27 */28 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
29 Object result =null;
30 //呼叫之前31  doBefore();
32 //呼叫原始物件的方法33 result=method.invoke(obj, args);
34 //呼叫之後35 doAfter();
36 return result;
37 }
38 39 privatevoid doBefore(){
40 System.out.println("before method invoke");
41 }
42 43 privatevoid doAfter(){
44 System.out.println("after method invoke");
45 }
46 47 }