• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

servlet/jsp 搞代码 7年前 (2018-06-18) 143次浏览 已收录 0个评论

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;

http://www.gaodaima.com/40827.html一个用来保存参数的容器类

    /** 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();    }}

欢迎大家阅读《一个用来保存参数的容器类》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:一个用来保存参数的容器类

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址