在工厂方法模式中有个工厂建造类需要依赖产品类,其构造过程是:
class.forname(c.getName()).newInstance();
如果在要产生的类中需要传入特定的参数来构建会怎么样呢?

解决方案 »

  1.   

    newInstance();会调用类中的无参构造函数的,如果你要调用指定的构造方法创建实例,需要获取到指定的构造函数。Constructor<?> cs=c1.getConstructor(String.class,int.class);
    Person per2=(Person)cs.newInstance("李四",22);
      

  2.   

    感觉如果你的产品类没有一个无参的构造函数,会报错,如果需要产生是传入特定的参数,则用class对象通过传递参数类型表得到Constructor对象,再通过这个特定的Constructor对象创建包含特定参数的产品对象。