zoukankan      html  css  js  c++  java
  • org.apache.commons.beanutils.BeanMap简单使用例子

    一、org.apache.commons.beanutils.BeanMap;
    将一个java bean允许通过map的api进行调用,

    几个支持的操作接口:

    • Object get(Object key)
    • Object put(Object key, Object value)
    • void putAll(Map t)
    • Set entrySet()
    • Collection values()
    • boolean containsKey(Object key)
    • ....
    例如:
    //将student的信息拼成字符串,格式:stuname|stuage|stuclass
    protected String getLine(Student student) {
               StringBuilder sb = new StringBuilder();
               BeanMap map = new BeanMap(student );
               appStr(sb, map, "stuname");
               appStr(sb, map, "stuage");
               appStr(sb, map, "stuclass");
               return sb.toString();
         }
     
    //将teacher的信息拼成字符串,格式:tname|tage|tclass
    protected String getLine(Teacher teacher) {
               StringBuilder sb = new StringBuilder();
               BeanMap map = new BeanMap(teacher);
               appStr(sb, map, "tname");
               appStr(sb, map, "tage");
               appStr(sb, map, "tclass");
               return sb.toString();
         }
         
     
    //拼字符串公用方法,将不同的对象,比如studengt和teacher的信息通过map传到方法里
    protected void appStr(StringBuilder sb, Map<String, Object> map,
                    String str) {
               Object value = map.get(str);
               sb.append(newValue).append("|");
         }
     
     
    注意:在上面的例子中,虽然可以直接用
    sb.append(student.getStuname()).append("|").append(student.getStuage()).append("|").append(student.getStuclass);
    来拼接字符串,但却使用了BeanMap,我认为原因就在于同时有多个对象(如student、teacher等)需要用到拼接字符串的方法,
    想要抽象出公共的方法,因此使用了BeanMap ,这样不需要将没个对象都传到appStr中,只需要传一个BeanMap对象就可以了。
     
     
  • 相关阅读:
    欧拉函数 || [SDOI2008]仪仗队 || BZOJ 2190 || Luogu P2158
    欧拉函数 || Calculation 2 || HDU 3501
    并查集+时光倒流 || [JSOI2008]星球大战starwar || BZOJ 1015 || Luogu P1197
    并查集+启发式合并+LCA思想 || 冷战 || BZOJ 4668
    并查集+优先队列+启发式合并 || 罗马游戏 || BZOJ 1455 || Luogu p2713
    BZOJ-USACO被虐记
    #1
    BZOJ2441: [中山市选2011]小W的问题
    BZOJ2726: [SDOI2012]任务安排
    BZOJ1492: [NOI2007]货币兑换Cash
  • 原文地址:https://www.cnblogs.com/bjh1117/p/7124845.html
Copyright © 2011-2022 走看看