⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 typeutil.java

📁 jetty SERVER連接資料庫用的軟體
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// ========================================================================// Copyright 2004-2005 Mort Bay Consulting Pty. Ltd.// ------------------------------------------------------------------------// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.// ========================================================================package org.mortbay.util;import java.io.IOException;import java.io.InputStream;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.net.URL;import java.util.HashMap;import org.mortbay.log.Log;/* ------------------------------------------------------------ *//** TYPE Utilities. * Provides various static utiltiy methods for manipulating types and their * string representations. * * @since Jetty 4.1 * @author Greg Wilkins (gregw) */public class TypeUtil{    public static int CR = '\015';    public static int LF = '\012';        /* ------------------------------------------------------------ */    private static final HashMap name2Class=new HashMap();    static    {        name2Class.put("boolean",java.lang.Boolean.TYPE);        name2Class.put("byte",java.lang.Byte.TYPE);        name2Class.put("char",java.lang.Character.TYPE);        name2Class.put("double",java.lang.Double.TYPE);        name2Class.put("float",java.lang.Float.TYPE);        name2Class.put("int",java.lang.Integer.TYPE);        name2Class.put("long",java.lang.Long.TYPE);        name2Class.put("short",java.lang.Short.TYPE);        name2Class.put("void",java.lang.Void.TYPE);                name2Class.put("java.lang.Boolean.TYPE",java.lang.Boolean.TYPE);        name2Class.put("java.lang.Byte.TYPE",java.lang.Byte.TYPE);        name2Class.put("java.lang.Character.TYPE",java.lang.Character.TYPE);        name2Class.put("java.lang.Double.TYPE",java.lang.Double.TYPE);        name2Class.put("java.lang.Float.TYPE",java.lang.Float.TYPE);        name2Class.put("java.lang.Integer.TYPE",java.lang.Integer.TYPE);        name2Class.put("java.lang.Long.TYPE",java.lang.Long.TYPE);        name2Class.put("java.lang.Short.TYPE",java.lang.Short.TYPE);        name2Class.put("java.lang.Void.TYPE",java.lang.Void.TYPE);        name2Class.put("java.lang.Boolean",java.lang.Boolean.class);        name2Class.put("java.lang.Byte",java.lang.Byte.class);        name2Class.put("java.lang.Character",java.lang.Character.class);        name2Class.put("java.lang.Double",java.lang.Double.class);        name2Class.put("java.lang.Float",java.lang.Float.class);        name2Class.put("java.lang.Integer",java.lang.Integer.class);        name2Class.put("java.lang.Long",java.lang.Long.class);        name2Class.put("java.lang.Short",java.lang.Short.class);        name2Class.put("Boolean",java.lang.Boolean.class);        name2Class.put("Byte",java.lang.Byte.class);        name2Class.put("Character",java.lang.Character.class);        name2Class.put("Double",java.lang.Double.class);        name2Class.put("Float",java.lang.Float.class);        name2Class.put("Integer",java.lang.Integer.class);        name2Class.put("Long",java.lang.Long.class);        name2Class.put("Short",java.lang.Short.class);        name2Class.put(null,java.lang.Void.TYPE);        name2Class.put("string",java.lang.String.class);        name2Class.put("String",java.lang.String.class);        name2Class.put("java.lang.String",java.lang.String.class);    }        /* ------------------------------------------------------------ */    private static final HashMap class2Name=new HashMap();    static    {        class2Name.put(java.lang.Boolean.TYPE,"boolean");        class2Name.put(java.lang.Byte.TYPE,"byte");        class2Name.put(java.lang.Character.TYPE,"char");        class2Name.put(java.lang.Double.TYPE,"double");        class2Name.put(java.lang.Float.TYPE,"float");        class2Name.put(java.lang.Integer.TYPE,"int");        class2Name.put(java.lang.Long.TYPE,"long");        class2Name.put(java.lang.Short.TYPE,"short");        class2Name.put(java.lang.Void.TYPE,"void");        class2Name.put(java.lang.Boolean.class,"java.lang.Boolean");        class2Name.put(java.lang.Byte.class,"java.lang.Byte");        class2Name.put(java.lang.Character.class,"java.lang.Character");        class2Name.put(java.lang.Double.class,"java.lang.Double");        class2Name.put(java.lang.Float.class,"java.lang.Float");        class2Name.put(java.lang.Integer.class,"java.lang.Integer");        class2Name.put(java.lang.Long.class,"java.lang.Long");        class2Name.put(java.lang.Short.class,"java.lang.Short");                class2Name.put(null,"void");        class2Name.put(java.lang.String.class,"java.lang.String");    }        /* ------------------------------------------------------------ */    private static final HashMap class2Value=new HashMap();    static    {        try        {            Class[] s ={java.lang.String.class};                        class2Value.put(java.lang.Boolean.TYPE,                           java.lang.Boolean.class.getMethod("valueOf",s));            class2Value.put(java.lang.Byte.TYPE,                           java.lang.Byte.class.getMethod("valueOf",s));            class2Value.put(java.lang.Double.TYPE,                           java.lang.Double.class.getMethod("valueOf",s));            class2Value.put(java.lang.Float.TYPE,                           java.lang.Float.class.getMethod("valueOf",s));            class2Value.put(java.lang.Integer.TYPE,                           java.lang.Integer.class.getMethod("valueOf",s));            class2Value.put(java.lang.Long.TYPE,                           java.lang.Long.class.getMethod("valueOf",s));            class2Value.put(java.lang.Short.TYPE,                           java.lang.Short.class.getMethod("valueOf",s));            class2Value.put(java.lang.Boolean.class,                           java.lang.Boolean.class.getMethod("valueOf",s));            class2Value.put(java.lang.Byte.class,                           java.lang.Byte.class.getMethod("valueOf",s));            class2Value.put(java.lang.Double.class,                           java.lang.Double.class.getMethod("valueOf",s));            class2Value.put(java.lang.Float.class,                           java.lang.Float.class.getMethod("valueOf",s));            class2Value.put(java.lang.Integer.class,                           java.lang.Integer.class.getMethod("valueOf",s));            class2Value.put(java.lang.Long.class,                           java.lang.Long.class.getMethod("valueOf",s));            class2Value.put(java.lang.Short.class,                           java.lang.Short.class.getMethod("valueOf",s));        }        catch(Exception e)        {            e.printStackTrace();        }    }    /* ------------------------------------------------------------ */    private static Class[] stringArg = { java.lang.String.class };        /* ------------------------------------------------------------ */    private static int intCacheSize=        Integer.getInteger("org.mortbay.util.TypeUtil.IntegerCacheSize",600).intValue();    private static Integer[] integerCache = new Integer[intCacheSize];    private static String[] integerStrCache = new String[intCacheSize];    private static Integer minusOne = new Integer(-1);    private static int longCacheSize=        Integer.getInteger("org.mortbay.util.TypeUtil.LongCacheSize",64).intValue();    private static Long[] longCache = new Long[longCacheSize];    private static Long minusOneL = new Long(-1);        /* ------------------------------------------------------------ */    /** Class from a canonical name for a type.     * @param name A class or type name.     * @return A class , which may be a primitive TYPE field..     */    public static Class fromName(String name)    {        return (Class)name2Class.get(name);    }        /* ------------------------------------------------------------ */    /** Canonical name for a type.     * @param type A class , which may be a primitive TYPE field.     * @return Canonical name.     */    public static String toName(Class type)    {        return (String)class2Name.get(type);    }        /* ------------------------------------------------------------ */    /** Convert String value to instance.     * @param type The class of the instance, which may be a primitive TYPE field.     * @param value The value as a string.     * @return The value as an Object.     */    public static Object valueOf(Class type, String value)    {        try        {            if (type.equals(java.lang.String.class))                return value;                        Method m = (Method)class2Value.get(type);            if (m!=null)                return m.invoke(null,new Object[] {value});            if (type.equals(java.lang.Character.TYPE) ||                type.equals(java.lang.Character.class))                return new Character(value.charAt(0));            Constructor c = type.getConstructor(stringArg);            return c.newInstance(new Object[] {value});           }        catch(NoSuchMethodException e)        {            // LogSupport.ignore(log,e);        }        catch(IllegalAccessException e)        {            // LogSupport.ignore(log,e);        }        catch(InstantiationException e)        {            // LogSupport.ignore(log,e);        }        catch(InvocationTargetException e)        {            if (e.getTargetException() instanceof Error)                throw (Error)(e.getTargetException());            // LogSupport.ignore(log,e);        }        return null;    }        /* ------------------------------------------------------------ */    /** Convert String value to instance.     * @param type classname or type (eg int)     * @param value The value as a string.     * @return The value as an Object.     */    public static Object valueOf(String type, String value)    {        return valueOf(fromName(type),value);    }        /* ------------------------------------------------------------ */    /** Convert int to Integer using cache.      */    public static Integer newInteger(int i)    {        if (i>=0 && i<intCacheSize)        {            if (integerCache[i]==null)                integerCache[i]=new Integer(i);            return integerCache[i];        }        else if (i==-1)            return minusOne;        return new Integer(i);    }        /* ------------------------------------------------------------ */    /** Convert int to Integer using cache.      */    public static Long newLong(long i)    {        if (i>=0 && i<longCacheSize)        {            if (longCache[(int)i]==null)                longCache[(int)i]=new Long(i);            return longCache[(int)i];        }        else if (i==-1)            return minusOneL;        return new Long(i);    }        /* ------------------------------------------------------------ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -