首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

反照根据annotation实现一些功能

2012-10-06 
反射根据annotation实现一些功能public void initGetter(ActionInvocation invocation) {HttpServletReque

反射根据annotation实现一些功能

  public void initGetter(ActionInvocation invocation) {    HttpServletRequest request = ServletActionContext.getRequest();    Class actionClass = invocation.getAction().getClass();    Field[] fields = actionClass.getDeclaredFields();    for (Field field : fields) {      Annotation[] annotations = field.getDeclaredAnnotations();      for (Annotation annotation : annotations)        if (annotation instanceof GetterAndSetter) {          GetterAndSetter getterAndSetter = (GetterAndSetter)annotation;          field.setAccessible(true);          try {            Object value = field.get(invocation.getAction());            request.setAttribute(field.getName(), value);          } catch (Exception e) {            e.printStackTrace();          }        }    }  }例子2:/** *  */package annotation;import java.lang.annotation.Annotation;import annotation.FirstTag.ALLNAME;/** * @author Qianmz * @date Mar 26, 2010/11:10:56 PM */public class TagClazz {@FirstTag(name="Qianmz",id=1000,lastName=ALLNAME.ZHAO)public void doExecute(){}public static void main(String[] args) {TagClazz tc = new TagClazz();try {Annotation[] ann = tc.getClass().getMethod("doExecute").getAnnotations();for(Annotation an : ann){System.out.println(an.getClass());System.out.println(an.annotationType());System.out.println(((FirstTag)an).name());System.out.println(((FirstTag)an).id());System.out.println(((FirstTag)an).lastName());}} catch (SecurityException e) {e.printStackTrace();} catch (NoSuchMethodException e) {e.printStackTrace();}}}================================result:interface annotation.FirstTagQianmz1000ZHAO

热点排行