ReflectionLoader { public static <T> T loadClass(Class<T> expectedSubtype, String className, Object[] args) throws ReflectionException { List<Class<?>> argumentTypes = new ArrayList<Class<?>>(); for(Object argument : args) { argumentTypes.add(argument.getClass()); } return loadClass(expectedSubtype, className, argumentTypes.toArray(new Class<?>[0]), args); }  static T loadClass(Class<T> expectedSubtype, String className, Object[] args); static T loadClass(Class<T> expectedSubtype, String className, 
			Class<?>[] constructorArguments, Object[] args); static Object invokeMethod(Object object, String method, Class<?>[] params, Object... args); static Object getField(Object object, String field);  }
@Test public void testLoadClass() throws Exception { OrderedBalancedTree tree = ReflectionLoader.loadClass(OrderedBalancedTree.class, "com.oberasoftware.jasdb.core.collections.OrderedBalancedTree", new Object[]{}); Assert.assertNotNull(tree); }