String className  = "Manager";
Class cl = class.forName(className);

解决方案 »

  1.   

    String className = "Manager";
    Manager manager = (Manager)class.forName( className ).newInstance();
      

  2.   

    自从JDK1.2以来,提供了另一个class的forName()方法,起方法声明为:
    static Class forName(String name, boolean initialize, ClassLoader loader)以方便在程序中,动态加载一个类.第一个参数即为你想要加载的类的类名,第二个是初始化选项,如果为true,则加载后自动链接和初始化,否则就不链接.最后一个是类的加载器,可以是系统加载器,也可以是其他的.
    加载完成以后,你可以使用加载近来的类并调用其方法,也可以使用Method.invoke()方法来调用类中的方法,这样会使代码更具通用性.谢谢
      

  3.   

    Class cl = Class.forName("com.xxx");
    XXXObject xx = (XXXObject)cl.newInstance();//调用没有参数的构造方法
    或是采用ClassLoader来进行(该方法在很多情况下是很有用的,例如在Servlet中或是在EJB中)
    Class cl = classLoader.loadClass("com.xxx");
    如果你的类构造方法中有参数,可以采用Constructor类来创建,具体参考Class类。
      

  4.   

    实际上除了上述方法以外,你也可以通过Factory模式来根据参数来动态生成不同的类对象,你可以参考:四人帮 的 design patterns
      

  5.   

    如果你要创建的对象没有空的公共的构造方法,那么就不能用Class.forName来创建,而只能用反射了!
      

  6.   

    :)to bhr(追风) :Class.forName也是反射呀。