reflectiontest.java
来自「This is a resource based on j2me embedde」· Java 代码 · 共 2,665 行 · 第 1/5 页
JAVA
2,665 行
success = false; } check("getMethod(\"setDoubleField\")", success); allTestsPassed &= success; success = false; try { getMethod = myClass.getMethod("getDoubleField", null); success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("getMethod(\"getDoubleField\")", success); allTestsPassed &= success; doubleVal = 3.0; setArgs[0] = new Double(doubleVal); success = false; try { retVal = setMethod.invoke(test, setArgs); success = (retVal == null); } catch (Exception e) { e.printStackTrace(); success = false; } check("invoke of setDouble", success); allTestsPassed &= success; success = false; try { retVal = getMethod.invoke(test, getArgs); success = (((Double) retVal).doubleValue() == doubleVal); } catch (Exception e) { e.printStackTrace(); success = false; } check("invoke of getDouble", success); allTestsPassed &= success; // set/getLongField setArgTypes[0] = Long.TYPE; success = false; try { setMethod = myClass.getMethod("setLongField", setArgTypes); success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("getMethod(\"setLongField\")", success); allTestsPassed &= success; success = false; try { getMethod = myClass.getMethod("getLongField", null); success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("getMethod(\"getLongField\")", success); allTestsPassed &= success; longVal = 1; setArgs[0] = new Long(longVal); success = false; try { retVal = setMethod.invoke(test, setArgs); success = (retVal == null); } catch (Exception e) { e.printStackTrace(); success = false; } check("invoke of setLong", success); allTestsPassed &= success; success = false; try { retVal = getMethod.invoke(test, getArgs); success = (((Long) retVal).longValue() == longVal); } catch (Exception e) { e.printStackTrace(); success = false; } check("invoke of getLong", success); allTestsPassed &= success; // voidMethod setArgTypes = null; success = false; test.voidMethodCalled = false; try { setMethod = myClass.getMethod("voidMethod", setArgTypes); success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("getMethod(\"voidMethod\") (1)", success); allTestsPassed &= success; setArgs = null; try { retVal = setMethod.invoke(test, setArgs); success = ((retVal == null) && (test.voidMethodCalled = true)); } catch (Exception e) { e.printStackTrace(); success = false; } check("invoke of voidMethod (1)", success); allTestsPassed &= success; // voidMethod setArgTypes = new Class[0]; success = false; test.voidMethodCalled = false; try { setMethod = myClass.getMethod("voidMethod", setArgTypes); success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("getMethod(\"voidMethod\") (2)", success); allTestsPassed &= success; setArgs = new Object[0]; try { retVal = setMethod.invoke(test, setArgs); success = ((retVal == null) && (test.voidMethodCalled = true)); } catch (Exception e) { e.printStackTrace(); success = false; } check("invoke of voidMethod (2)", success); allTestsPassed &= success; setArgTypes = new Class[1]; setArgs = new Object[1]; // // Abnormal (exception-throwing) method tests // // null object argument to invocation try { setArgTypes[0] = Integer.TYPE; setMethod = myClass.getMethod("setIntField", setArgTypes); } catch (Exception e) { e.printStackTrace(); } success = false; test.intField = 0; setArgs[0] = new Integer(1); try { setMethod.invoke(null, setArgs); } catch (NullPointerException e) { success = true; } catch (Exception e) { } check("invoke with null object argument", success); allTestsPassed &= success; // illegal conversion of argument setArgs[0] = new Double(1.0); success = false; try { setMethod.invoke(test, setArgs); } catch (IllegalArgumentException e) { success = true; } catch (Exception e) { } check("invoke with illegal argument conversion", success); allTestsPassed &= success; // null argument object setArgs[0] = null; success = false; try { setMethod.invoke(test, setArgs); } catch (IllegalArgumentException e) { success = true; } catch (NullPointerException e) { System.out.println( "*** WARNING: JDK 1.2 throws a NullPointerException here" ); System.out.println( "where the spec indicates an IllegalArgumentException " ); System.out.println( "should be thrown. Saying the test succeeded anyway."); success = true; warnAtEnd = true; numWarnings++; } catch (Exception e) { e.printStackTrace(); } check("invoke with null argument object", success); allTestsPassed &= success; // wrong number of arguments setArgTypes = null; success = false; test.voidMethodCalled = false; try { setMethod = myClass.getMethod("voidMethod", setArgTypes); success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("getMethod(\"voidMethod\") (3)", success); allTestsPassed &= success; setArgs = new Object[1]; setArgs[0] = null; try { retVal = setMethod.invoke(test, setArgs); success = false; } catch (IllegalArgumentException e) { success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("invoke of voidMethod with wrong number of arguments", success); allTestsPassed &= success; setArgTypes = new Class[1]; } if (runAccessTests) { // // Access Tests // ReflectionTestOtherPackageHelper oph = new ReflectionTestOtherPackageHelper(); try { myClass = ReflectionTestOtherPackageHelper.class; getMethod = myClass.getDeclaredMethod("protectedVoidMethod", null); success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("getMethod(\"cvmtest.ReflectionTestOtherPackageHelper." + "protectedVoidMethod\")", success); allTestsPassed &= success; try { getMethod.invoke(oph, null); success = false; } catch (IllegalAccessException e) { success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("protectedVoidMethod invoke exception case", success); allTestsPassed &= success; ReflectionTestSamePackageHelper sph = new ReflectionTestSamePackageHelper(); try { myClass = ReflectionTestSamePackageHelper.class; getMethod = myClass.getDeclaredMethod("protectedVoidMethod", null); success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("getMethod(\"ReflectionTestSamePackageHelper." + "protectedVoidMethod\")", success); allTestsPassed &= success; try { getMethod.invoke(sph, null); success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("invoke of ReflectionTestSamePackageHelper." + "protectedVoidMethod", success); allTestsPassed &= success; } if (runFieldTests) { // // Field tests // Field field = null; myClass = ReflectionTest.class; // // Field.get() of all types // /////////////////// // boolean field // /////////////////// test.booleanField = false; try { field = myClass.getField("booleanField"); success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("getField(\"booleanField\")", success); allTestsPassed &= success; try { Boolean obj = (Boolean) field.get(test); success = (obj.booleanValue() == false); } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive boolean field.get()", success); allTestsPassed &= success; booleanVal = true; test.booleanField = booleanVal; try { success = (field.getBoolean(test) == booleanVal); } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive boolean field.getBoolean()", success); allTestsPassed &= success; try { success = false; byte foo = field.getByte(test); } catch (IllegalArgumentException e) { success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive boolean field.getByte() exception case", success); allTestsPassed &= success; try { success = false; char foo = field.getChar(test); } catch (IllegalArgumentException e) { success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive boolean field.getChar() exception case", success); allTestsPassed &= success; try { success = false; short foo = field.getShort(test); } catch (IllegalArgumentException e) { success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive boolean field.getShort() exception case", success); allTestsPassed &= success; try { success = false; int foo = field.getInt(test); } catch (IllegalArgumentException e) { success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive boolean field.getInt() exception case", success); allTestsPassed &= success; try { success = false; long foo = field.getLong(test); } catch (IllegalArgumentException e) { success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive boolean field.getLong() exception case", success); allTestsPassed &= success; try { success = false; float foo = field.getFloat(test); } catch (IllegalArgumentException e) { success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive boolean field.getFloat() exception case", success); allTestsPassed &= success; try { success = false; double foo = field.getDouble(test); } catch (IllegalArgumentException e) { success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive boolean field.getDouble() exception case", success); allTestsPassed &= success; //////////////// // byte field // //////////////// test.byteField = 5; try { field = myClass.getField("byteField"); success = true; } catch (Exception e) { e.printStackTrace(); success = false; } check("getField(\"byteField\")", success); allTestsPassed &= success; try { Byte obj = (Byte) field.get(test); success = (obj.byteValue() == 5); } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive byte field.get()", success); allTestsPassed &= success; test.byteField = 7; try { success = (field.getByte(test) == 7); } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive byte field.getByte()", success); allTestsPassed &= success; try { success = (field.getShort(test) == 7); } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive byte field.getShort()", success); allTestsPassed &= success; try { success = (field.getInt(test) == 7); } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive byte field.getInt()", success); allTestsPassed &= success; try { success = (field.getLong(test) == 7); } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive byte field.getLong()", success); allTestsPassed &= success; try { success = (field.getFloat(test) == 7.0f); } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive byte field.getFloat()", success); allTestsPassed &= success; try { success = (field.getDouble(test) == 7.0); } catch (Exception e) { e.printStackTrace(); success = false; } check("primitive byte field.getDouble()", success); allTestsPassed &= success; try { success = false; boolean foo = field.getBoolean(test); } catch (IllegalArgumentException e) { success = true; } catch (Exception e) {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?