/*
* This file is part of the Jikes RVM project (http://jikesrvm.org).
*
* This file is licensed to You under the Eclipse Public License (EPL);
* You may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.opensource.org/licenses/eclipse-1.0.php
*
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership.
*/
package test.org.jikesrvm.basic.core.classloading;
class TestClassLoading {
public static void main(String[] args) {
doTest("java.lang.String");
doTest("java.lang.Number"); //Can't instantiate abstract classes
doTest("java.lang.Integer"); //Can't instantiate as no default constructor
doTest("[Ljava.lang.String;"); //Can't instantiate arrays
doTest("[[Ljava.lang.String;"); //Can't instantiate arrays
doTest("[I"); //Can't instantiate arrays
doTest("[[I"); //Can't instantiate arrays
doTest("I"); //Can not load classes for primitives
doTest("NoExist"); //Non existent class
}
private static void doTest(final String classname) {
System.out.print("Class.forName(" + classname + ") found? ");
final Class c;
try {
c = Class.forName(classname);
System.out.println("true");
} catch (final ClassNotFoundException e) {
System.out.println("false");
return;
}
System.out.print("Class.forName(" + classname + ").newInstance() successful? ");
try {
c.newInstance();
System.out.println("true");
} catch (final Throwable throwable) {
System.out.println("false due to " + throwable.getClass().getName());
}
}
}