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 + -
显示快捷键?