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

📄 invokerhelper.java

📁 大名鼎鼎的java动态脚本语言。已经通过了sun的认证
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        Number n = (Number) asType(value, Long.class);        return n.longValue();    }    public static float floatUnbox(Object value) {        Number n = (Number) asType(value, Float.class);        return n.floatValue();    }    public static double doubleUnbox(Object value) {        Number n = (Number) asType(value, Double.class);        return n.doubleValue();    }    /**     * @param a    array of primitives     * @param type component type of the array     * @return     */    public static Object[] convertPrimitiveArray(Object a, Class type) {//        System.out.println("a.getClass() = " + a.getClass());        Object[] ans = null;        String elemType = type.getName();        if (elemType.equals("int")) {            // conservative coding            if (a.getClass().getName().equals("[Ljava.lang.Integer;")) {                ans = (Integer[]) a;            }            else {                int[] ia = (int[]) a;                ans = new Integer[ia.length];                for (int i = 0; i < ia.length; i++) {                    int e = ia[i];                    ans[i] = integerValue(e);                }            }        }        else if (elemType.equals("char")) {            if (a.getClass().getName().equals("[Ljava.lang.Character;")) {                ans = (Character[]) a;            }            else {                char[] ia = (char[]) a;                ans = new Character[ia.length];                for (int i = 0; i < ia.length; i++) {                    char e = ia[i];                    ans[i] = new Character(e);                }            }        }        else if (elemType.equals("boolean")) {            if (a.getClass().getName().equals("[Ljava.lang.Boolean;")) {                ans = (Boolean[]) a;            }            else {                boolean[] ia = (boolean[]) a;                ans = new Boolean[ia.length];                for (int i = 0; i < ia.length; i++) {                    boolean e = ia[i];                    ans[i] = new Boolean(e);                }            }        }        else if (elemType.equals("byte")) {            if (a.getClass().getName().equals("[Ljava.lang.Byte;")) {                ans = (Byte[]) a;            }            else {                byte[] ia = (byte[]) a;                ans = new Byte[ia.length];                for (int i = 0; i < ia.length; i++) {                    byte e = ia[i];                    ans[i] = new Byte(e);                }            }        }        else if (elemType.equals("short")) {            if (a.getClass().getName().equals("[Ljava.lang.Short;")) {                ans = (Short[]) a;            }            else {                short[] ia = (short[]) a;                ans = new Short[ia.length];                for (int i = 0; i < ia.length; i++) {                    short e = ia[i];                    ans[i] = new Short(e);                }            }        }        else if (elemType.equals("float")) {            if (a.getClass().getName().equals("[Ljava.lang.Float;")) {                ans = (Float[]) a;            }            else {                float[] ia = (float[]) a;                ans = new Float[ia.length];                for (int i = 0; i < ia.length; i++) {                    float e = ia[i];                    ans[i] = new Float(e);                }            }        }        else if (elemType.equals("long")) {            if (a.getClass().getName().equals("[Ljava.lang.Long;")) {                ans = (Long[]) a;            }            else {                long[] ia = (long[]) a;                ans = new Long[ia.length];                for (int i = 0; i < ia.length; i++) {                    long e = ia[i];                    ans[i] = new Long(e);                }            }        }        else if (elemType.equals("double")) {            if (a.getClass().getName().equals("[Ljava.lang.Double;")) {                ans = (Double[]) a;            }            else {                double[] ia = (double[]) a;                ans = new Double[ia.length];                for (int i = 0; i < ia.length; i++) {                    double e = ia[i];                    ans[i] = new Double(e);                }            }        }        return ans;    }    public static int[] convertToIntArray(Object a) {        int[] ans = null;        // conservative coding        if (a.getClass().getName().equals("[I")) {            ans = (int[]) a;        }        else {            Object[] ia = (Object[]) a;            ans = new int[ia.length];            for (int i = 0; i < ia.length; i++) {                if (ia[i] == null) {                    continue;                }                ans[i] = ((Number) ia[i]).intValue();            }        }        return ans;    }    public static boolean[] convertToBooleanArray(Object a) {        boolean[] ans = null;        // conservative coding        if (a.getClass().getName().equals("[Z")) {            ans = (boolean[]) a;        }        else {            Object[] ia = (Object[]) a;            ans = new boolean[ia.length];            for (int i = 0; i < ia.length; i++) {                if (ia[i] == null) {                    continue;                }                ans[i] = ((Boolean) ia[i]).booleanValue();            }        }        return ans;    }    public static byte[] convertToByteArray(Object a) {        byte[] ans = null;        // conservative coding        if (a.getClass().getName().equals("[B")) {            ans = (byte[]) a;        }        else {            Object[] ia = (Object[]) a;            ans = new byte[ia.length];            for (int i = 0; i < ia.length; i++) {                if (ia[i] != null) {                    ans[i] = ((Number) ia[i]).byteValue();                }            }        }        return ans;    }    public static short[] convertToShortArray(Object a) {        short[] ans = null;        // conservative coding        if (a.getClass().getName().equals("[S")) {            ans = (short[]) a;        }        else {            Object[] ia = (Object[]) a;            ans = new short[ia.length];            for (int i = 0; i < ia.length; i++) {                ans[i] = ((Number) ia[i]).shortValue();            }        }        return ans;    }    public static char[] convertToCharArray(Object a) {        char[] ans = null;        // conservative coding        if (a.getClass().getName().equals("[C")) {            ans = (char[]) a;        }        else {            Object[] ia = (Object[]) a;            ans = new char[ia.length];            for (int i = 0; i < ia.length; i++) {                if (ia[i] == null) {                    continue;                }                ans[i] = ((Character) ia[i]).charValue();            }        }        return ans;    }    public static long[] convertToLongArray(Object a) {        long[] ans = null;        // conservative coding        if (a.getClass().getName().equals("[J")) {            ans = (long[]) a;        }        else {            Object[] ia = (Object[]) a;            ans = new long[ia.length];            for (int i = 0; i < ia.length; i++) {                if (ia[i] == null) {                    continue;                }                ans[i] = ((Number) ia[i]).longValue();            }        }        return ans;    }    public static float[] convertToFloatArray(Object a) {        float[] ans = null;        // conservative coding        if (a.getClass().getName().equals("[F")) {            ans = (float[]) a;        }        else {            Object[] ia = (Object[]) a;            ans = new float[ia.length];            for (int i = 0; i < ia.length; i++) {                if (ia[i] == null) {                    continue;                }                ans[i] = ((Number) ia[i]).floatValue();            }        }        return ans;    }    public static double[] convertToDoubleArray(Object a) {        double[] ans = null;        // conservative coding        if (a.getClass().getName().equals("[D")) {            ans = (double[]) a;        }        else {            Object[] ia = (Object[]) a;            ans = new double[ia.length];            for (int i = 0; i < ia.length; i++) {                if (ia[i] == null) {                    continue;                }                ans[i] = ((Number) ia[i]).doubleValue();            }        }        return ans;    }    public static Object convertToPrimitiveArray(Object a, Class type) {        if (type == Byte.TYPE) {            return convertToByteArray(a);        }        if (type == Boolean.TYPE) {            return convertToBooleanArray(a);        }        if (type == Short.TYPE) {            return convertToShortArray(a);        }        if (type == Character.TYPE) {            return convertToCharArray(a);        }        if (type == Integer.TYPE) {            return convertToIntArray(a);        }        if (type == Long.TYPE) {            return convertToLongArray(a);        }        if (type == Float.TYPE) {            return convertToFloatArray(a);        }        if (type == Double.TYPE) {            return convertToDoubleArray(a);        }        else {            return a;        }    }    /**     * get the Integer object from an int. Cached version is used for small ints.     *     * @param v     * @return     */    public static Integer integerValue(int v) {        int index = v + INT_CACHE_OFFSET;        if (index >= 0 && index < INT_CACHE_LEN) {            return SMALL_INTEGERS[index];        }        else {            return new Integer(v);        }    }    private static Integer[] SMALL_INTEGERS;    private static int INT_CACHE_OFFSET = 128, INT_CACHE_LEN = 256;    static {        SMALL_INTEGERS = new Integer[INT_CACHE_LEN];        for (int i = 0; i < SMALL_INTEGERS.length; i++) {            SMALL_INTEGERS[i] = new Integer(i - INT_CACHE_OFFSET);        }    }}

⌨️ 快捷键说明

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