WEB开发网
开发学院软件开发Java Java 动态代理机制分析及扩展,第 2 部分 阅读

Java 动态代理机制分析及扩展,第 2 部分

 2010-02-24 00:00:00 来源:WEB开发网   
核心提示: 清单 1. 类模板package&Package;finalpublicclass&Name&Extends&Implements{privatejava.lang.reflect.InvocationHandlerhandler=null;&Constructors&Methods}类模板定制

清单 1. 类模板

package &Package; 
final public class &Name &Extends &Implements 
{ 
  private java.lang.reflect.InvocationHandler handler = null; 
  &Constructors 
  &Methods 
} 

类模板定制了代理类的代码框架。其中带“&”前缀的标签位被用来引导相应的代码替换。在此预留了包(&Package)、类名(&ClassName)、类继承(&Extends)、接口实现(&Implements)、构造函数集(&Constructors)及方法集(&Methods)的标签位。类模板还同时声明了一个私有型的调用处理器对象作为类成员。

清单 2. 方法模板

&Modifiers &ReturnType &MethodName(&Parameters) &Throwables 
{ 
  java.lang.reflect.Method method = null; 
  try { 
    method = &Class.getMethod( \"& MethodName\", &ParameterTypes ); 
  } 
  catch(Exception e){ 
  } 
  Object r = null; 
  try{ 
    r = handler.invoke( this, method, &ParameterValues ); 
  }&Exceptions 
  &Return 
} 

方法模板定制了代理类方法集合中各个方法的代码框架,同样的带“&”前缀的标签位被用来引导相应的代码替换。在此预留了修饰符(&Modifiers)、返回类型(&ReturnType)、方法名(&MethodName)、参数列表(Parameters)、异常列表(&Throwables)、方法的声明类(&Class)、参数类型列表(&ParameterTypes)、调用处理器的参数值列表(&ParameterValues),异常处理(&Exceptions)及返回值(&Return)的标签位。

上一页  1 2 3 4 5 6 7  下一页

Tags:Java 动态 代理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接