WEB开发网
开发学院软件开发Java Classworking 工具箱: 注释(Annotation)与 ASM 阅读

Classworking 工具箱: 注释(Annotation)与 ASM

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: 清单 1 展示了一个示例注释声明,后面是将该注释用于某些方法的类的定义,Classworking 工具箱: 注释(Annotation)与 ASM(2),该 LogMe 注释用来标记应该包含在应用程序的日志记录中的方法,我已经给该注释赋了两个值:一个表示该调用被包含其中的日志记录的级别,然后我将

清单 1 展示了一个示例注释声明,后面是将该注释用于某些方法的类的定义。该 LogMe 注释用来标记应该包含在应用程序的日志记录中的方法。我已经给该注释赋了两个值:一个表示该调用被包含其中的日志记录的级别,另一个表示用于该方法调用的名称(默认是空字符串,假定没有名称时,处理该注释的代码将代入实际的方法名)。然后我将该注释用于 StringArray 类中的两个方法,对 merge() 方法只使用默认值,对 indexOf() 方法则提供显式值。

清单 1. 反射代替接口及其实现

import java.lang.annotation.ElementType; 
import java.lang.annotation.Target; 
/** 
 * Annotation for method to be included in logging. 
 */ 
@Target({ElementType.METHOD}) 
public @interface LogMe { 
  int level() default 0; 
  String name() default ""; 
} 
public class StringArray 
{ 
  private final String[] m_list; 
   
  public StringArray(String[] list) { 
    ... 
  } 
   
  public StringArray(StringArray base, String[] adds) { 
    ... 
  } 
   
  @LogMe private String[] merge(String[] list1, String[]list2) { 
    ... 
  } 
   
  public String get(int index) { 
    return m_list[index]; 
  } 
   
  @LogMe(level=1, name="lookup") public int indexOf(String value) { 
    ... 
  } 
   
  public int size() { 
    return m_list.length; 
  } 
} 

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

Tags:Classworking 工具箱 注释

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