快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

一个用来保存参数的容器类


import java.util.*;

/** * 提供一个保存参数的容器,用来给那些参数多、可选参数多、参数易变的方式提供参数读取能力。 * 直接使用Map等类对于数据类型处理不是方便。本类提供常用数据类型的读取方式。用法示例:<br> * port = args.get("port",8080);<br> * 放入Map中的port值可以是"8443"或new Integer(8443)或其他任何类型,只要toString() * 能够解析出一个整数。 * @author sunlen * @version 1.0 */public class Args{    /** 一个常量空参数表。用于传递空参数,该参数列表已经锁定,不能修改。*/    public static final Args EMPTY = new Args().lock();

    /** 参数列表是否已经锁定,锁定后的参数列表将只读。*/    boolean locked;

    /** Map保存的参数。*/    Map args;

    /** 创建空参数列表。*/    public Args()    {        this(new HashMap());    }

    /**     * 用Map创建参数。     * @param theArgs 保存参数的Map对象。     */    public Args(Map theArgs)    {        if (theArgs==null)        {            throw new NullPointerException("argument is null");        }        args = theArgs;    }

    /**     * 取得字符串参数的方式。     * @param key 参数名。     * @param def 参数值。     */    public String get(String key,String def)    {        try        {            return args.get(key).toString();        }        catch (Exception ex)        {            return def;        }    }

    /**     * 取得整数参数的方式。     * @param key 参数名。     * @param def 参数值。     */    public int get(String key,int def)    {        try        {            return Integer.parseInt(args.get(key).toString());        }        catch (Exception ex)        {            return def;        }    }

    /**     * 取得长整数参数的方式。     * @param key 参数名。     * @param def 参数值。     */    public long get(String key,long def)    {        try        {            return Long.parseLong(args.get(key).toString());        }        catch (Exception ex)        {            return def;        }    }

    /**     * 取得浮点数参数的方式。     * @param key 参数名。     * @param def 参数值。     */    public float get(String key,float def)    {        try        {            return Float.parseFloat(args.get(key).toString());        }        catch (Exception ex)        {            return def;        }    }

    /**     * 取得布尔参数的方式。只有"true"解析成true其他解析成false。     * @param key 参数名。     * @param def 参数值。     */    public boolean get(String key,boolean def)    {        try        {            return ("true".equals(args.get(key)));        }        catch (Exception ex)        {            return def;        }    }

    /**     * 取得原始对象类型。     * @param key 参数名。     * @param def 参数缺省值。     */    public Object get(String key,Object def)    {        try        {            Object obj = args.get(key);            if (obj==null)            {                return def;            }            return obj;        }        catch (Exception ex)        {            return def;        }    }

    /**     * 往当前参数表中添加一个参数。     * @param key 参数名。     * @param value 参数值。     * @return 添加了新参数后的参数表(对象实例没有变)。     * @exception UnsupportedOperationException 假如参数列表已经被锁定。     */    public Args set(String key,Object value)    {        if(locked)        {            throw new UnsupportedOperationException(                      "Args have locked,can modify");        }        args.put(key,value);        return this;    }

    /**     * 往当前参数表中添加一个参数。     * @param key 参数名。     * @param value 参数值。     * @return 添加了新参数后的参数表(对象实例没有变)。     * @exception UnsupportedOperationException 假如参数列表已经被锁定。     */    public Args set(String key,int value)    {        if(locked)        {            throw new UnsupportedOperationException(                  "Args have locked,can modify");        }        args.put(key,new Integer(value));        return this;    }

    /**     * 往当前参数表中添加一个参数。     * @param key 参数名。     * @param value 参数值。     * @return 添加了新参数后的参数表(对象实例没有变)。     * @exception UnsupportedOperationException 假如参数列表已经被锁定。     */    public Args set(String key,boolean value)    {        if(locked)        {            throw new UnsupportedOperationException(                                            "Args have locked,can modify");        }        args.put(key,new Boolean(value));        return this;    }

    /**     * 往当前参数表中添加一个参数。     * @param key 参数名。     * @param value 参数值。     * @return 添加了新参数后的参数表(对象实例没有变)。     * @exception UnsupportedOperationException 假如参数列表已经被锁定。     */    public Args set(String key,long value)    {        if(locked)        {            throw new UnsupportedOperationException(                  "Args have locked,can modify");        }        args.put(key,new Long(value));        return this;    }

    /**     * 往当前参数表中添加一个参数。     * @param key 参数名。     * @param value 参数值。     * @return 添加了新参数后的参数表(对象实例没有变)。     * @exception UnsupportedOperationException 假如参数列表已经被锁定。     */    public Args set(String key,float value)    {        if(locked)        {            throw new UnsupportedOperationException("Args have locked,can modify");        }        args.put(key,new Float(value));        return this;    }

    /**     * 往当前参数表中添加一个参数。     * @param key 参数名。     * @param value 参数值。     * @return 添加了新参数后的参数表(对象实例没有变)。     * @exception UnsupportedOperationException 假如参数列表已经被锁定。     */    public Args set(String key,double value)    {        if(locked)        {            throw new UnsupportedOperationException(                  "Args have locked,can modify");        }        args.put(key,new Double(value));        return this;    }

    /**     * 锁定参数列表。锁定后该参数列表将变成只读的,任何对set()方式的调用都将抛出     * UnsupportedOperationException非常。已经锁定的参数表再次调用本方式没有任何影响。     * @return 锁定后的参数列表(对象实例没有变)。     */    public Args lock()    {        locked = true;        return this;    }

    /**     * 参数列表的字符串描述。     * @return 所有参数值。     */    public String toString()    {        return args.toString();    }}




返回类别: 教程
上一教程: java实现屏幕取色
下一教程: 看看String类的构造方式

您可以阅读与"一个用来保存参数的容器类"相关的教程:
· 一个JDBC-ODBC桥的字符集参数的例子。
· 一个用来访问http服务器的东西。功能类似于java.net中的那个。但要强。
· 一个用Class.forName()做的动态装载小东东,有助于理解Class.forName()的应用
· 一个用JSP做的日历
· javascript向jsp传递参数的一种手段:使用xmlhttp对象
    微笑服务 优质保证 索取样品