private static void invokeAndCreate(String name)  throws Exception{
		System.out.println(name);
		Class<?> objClass = Class.forName(name);
		FooObject obj = (FooObject) objClass.newInstance();
		
		Constructor<?> c = objClass.getConstructor(String.class);
		FooObject obj2 = (FooObject) c.newInstance("It is a string");
		System.out.println(obj2.getName());
		
		Method m = objClass.getDeclaredMethod("setName", String.class);
		
		invokeMethod(m, obj);
		
		System.out.println("After reflective invocation: " + obj.getName());
		
		Method m2 = objClass.getMethod("getName");
		Object result = m2.invoke(obj);
		System.out.println("And result again: " + result);
		
		Field field = objClass.getDeclaredField("name");
		field.setAccessible(true);
		Object val = field.get(obj2);
		System.out.println("private field value: " + val);
	}