快速业务通道

在Eclipse 3.1中体验J2SE 5.0的新特性 第二部分 :注释类型 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
   Employee ct=new Contractor("Joe","IBM");      Employee sup=new Supplemental("Linda","IBM","8");      em.addMemeber(vn1);      em.addMemeber(vn2);      em.addMemeber(ct);      em.addMemeber(sup);      PrintWriter ps;      try {        ps = new PrintWriter(new FileOutputStream(new File("C:\\test.output"),true));        ExportableGenerator eg=new TXTExportableGenerator(ps);        eg.genDoc(em,0);        eg.flush();      } catch (FileNotFoundException e) {        e.printStackTrace();      }    } }

清单23 ExportableGenerator

public abstract class ExportableGenerator {    PrintWriter out = null;    public ExportableGenerator(PrintWriter out) {    super();    this.out = out;    }    public void genDoc(Employee e, int tagNum) {    Class employee = e.getClass();      Field[] fields = employee.getDeclaredFields();      outputFieldHeader(out,e);      for (Field f : fields) {        if (f.isAnnotationPresent(Exportable.class)) {          if (f.getType() != ArrayList.class) {            for(int i=0; i<tagNum;i++){            out.print("***");            }            outputSimpleField(out, f, e);          }else{          try {          ArrayList team=(ArrayList)f.get(e);    out.println("-----------------------------");        for(int i=0;i <team.size();i++){        Employee member=(Employee)team.get(i);        genDoc(member,tagNum+1);        out.println("-----------------------------");        }      } catch (IllegalArgumentException e1) {            e1.printStackTrace();        } catch (IllegalAccessException e1) {          e1.printStackTrace();        }    }    }      }    outputFieldFooter(out,e);    }    public void flush(){      out.flush();      out.close();    }    protected String value(Field f, Object obj) {    Class type = f.getType(); try {    if (type == String.class)      return (String) f.get(obj);    if (type == Date.class) {      return DateFormat.getDateInstance().format((Date)f.get(obj)); }    } catch (IllegalArgumentException e) {    e.printStackTrace();        return f.getName();      } catch (IllegalAccessException e) {        e.printStackTrace();        return f.getName();      }      return f.getName();    }    protected abstract void outputSimpleField(PrintWriter out, Field f,        Object obj);    protected abstract void outputFieldHeader(PrintWriter out,Object e);    protected abstract void outputFieldFooter(PrintWriter out,Object e);

在Eclipse 3.1中体验J2SE 5.0的新特性 第二部分 :注释类型(9)

时间:2011-04-02 IBM 邹青 吴嫣 吴疆

清单24 TXTExportableGenerator

public class TXTExportableGenerator exten

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号