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

📄 numericconversiontest.java

📁 OGNL文档包:----->最新版本!学习Struts2的必须帮助参考文档
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                                        { new Long(55), Short.class, new Short((short)55) },
                                        { new Float(55), Short.class, new Short((short)55) },
                                        { new BigInteger("55"), Short.class, new Short((short)55) },
                                        { new BigDecimal("55"), Short.class, new Short((short)55) },

                                        /* To Long.class */
                                        { "55", Long.class, new Long(55) },
                                        { new Integer(55), Long.class, new Long(55) },
                                        { new Double(55), Long.class, new Long(55) },
                                        { Boolean.TRUE, Long.class, new Long(1) },
                                        { new Byte((byte)55), Long.class, new Long(55) },
                                        { new Character((char)55), Long.class, new Long(55) },
                                        { new Short((short)55), Long.class, new Long(55) },
                                        { new Long(55), Long.class, new Long(55) },
                                        { new Float(55), Long.class, new Long(55) },
                                        { new BigInteger("55"), Long.class, new Long(55) },
                                        { new BigDecimal("55"), Long.class, new Long(55) },

                                        /* To Float.class */
                                        { "55.1234", Float.class, new Float(55.1234) },
                                        { new Integer(55), Float.class, new Float(55) },
                                        { new Double(55.1234), Float.class, new Float(55.1234) },
                                        { Boolean.TRUE, Float.class, new Float(1) },
                                        { new Byte((byte)55), Float.class, new Float(55) },
                                        { new Character((char)55), Float.class, new Float(55) },
                                        { new Short((short)55), Float.class, new Float(55) },
                                        { new Long(55), Float.class, new Float(55) },
                                        { new Float(55.1234), Float.class, new Float(55.1234) },
                                        { new BigInteger("55"), Float.class, new Float(55) },
                                        { new BigDecimal("55.1234"), Float.class, new Float(55.1234) },

                                        /* To BigInteger.class */
                                        { "55", BigInteger.class, new BigInteger("55") },
                                        { new Integer(55), BigInteger.class, new BigInteger("55") },
                                        { new Double(55), BigInteger.class, new BigInteger("55") },
                                        { Boolean.TRUE, BigInteger.class, new BigInteger("1") },
                                        { new Byte((byte)55), BigInteger.class, new BigInteger("55") },
                                        { new Character((char)55), BigInteger.class, new BigInteger("55") },
                                        { new Short((short)55), BigInteger.class, new BigInteger("55") },
                                        { new Long(55), BigInteger.class, new BigInteger("55") },
                                        { new Float(55), BigInteger.class, new BigInteger("55") },
                                        { new BigInteger("55"), BigInteger.class, new BigInteger("55") },
                                        { new BigDecimal("55"), BigInteger.class, new BigInteger("55") },

                                        /* To BigDecimal.class */
                                        { "55.1234", BigDecimal.class, new BigDecimal("55.1234") },
                                        { new Integer(55), BigDecimal.class, new BigDecimal("55") },
                                        { new Double(55.1234), BigDecimal.class, new BigDecimal("55.1234"), new Integer(4) },
                                        { Boolean.TRUE, BigDecimal.class, new BigDecimal("1") },
                                        { new Byte((byte)55), BigDecimal.class, new BigDecimal("55") },
                                        { new Character((char)55), BigDecimal.class, new BigDecimal("55") },
                                        { new Short((short)55), BigDecimal.class, new BigDecimal("55") },
                                        { new Long(55), BigDecimal.class, new BigDecimal("55") },
                                        { new Float(55.1234), BigDecimal.class, new BigDecimal("55.1234"), new Integer(4) },
                                        { new BigInteger("55"), BigDecimal.class, new BigDecimal("55") },
                                        { new BigDecimal("55.1234"), BigDecimal.class, new BigDecimal("55.1234") },
                                    };

    private Object                  value;
    private Class                   toClass;
    private Object                  expectedValue;
    private int                     scale;

	/*===================================================================
		Public static methods
	  ===================================================================*/
    public static TestSuite suite()
    {
        TestSuite       result = new TestSuite();

        for (int i = 0; i < TESTS.length; i++) {
            result.addTest(new NumericConversionTest(TESTS[i][0],
                                                    (Class)TESTS[i][1],
                                                    TESTS[i][2],
                                                    (TESTS[i].length > 3) ? ((Integer)TESTS[i][3]).intValue() : -1));
        }
        return result;
    }

	/*===================================================================
		Constructors
	  ===================================================================*/
    public NumericConversionTest(Object value, Class toClass, Object expectedValue, int scale)
    {
        super(value + " [" + value.getClass().getName() + "] -> " + toClass.getName() + " == " + expectedValue + " [" + expectedValue.getClass().getName() + "]" + ((scale >= 0) ? (" (to within " + scale + " decimal places)") : ""));
        this.value = value;
        this.toClass = toClass;
        this.expectedValue = expectedValue;
        this.scale = scale;
    }

	/*===================================================================
		Overridden methods
	  ===================================================================*/
    protected void runTest() throws OgnlException
    {
        Object      result;

        result = OgnlOps.convertValue(value, toClass);
        if (!isEqual(result, expectedValue)) {
            if (scale >= 0) {
                double  scalingFactor = Math.pow(10, scale),
                        v1 = ((Number)value).doubleValue() * scalingFactor,
                        v2 = ((Number)expectedValue).doubleValue() * scalingFactor;

                assertTrue((int)v1 == (int)v2);
            } else {
                fail();
            }
        }
    }
}

⌨️ 快捷键说明

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