有3个类A和B和C,他们父类不同但都可以通过new来实例化,现在想通过另一个类F,用统一的途径来实例化他们,比如通过类似F.getinstance(“A”)就可以生成A的一个实例;F.getInstance(“C”)就可以产生C的实例。请问F的代码怎么写?  请教高手

解决方案 »

  1.   

    class F{
    Object getinstance(String x){
        if(x=="A")
            return new A();
        if(x=="B")
            return new B();
        if(x=="C")
            return new C();
    }
    }
      

  2.   

    在主函数中取得object后再强制转换回去(A)F.getinstance("A");
      

  3.   

    用反射
    Class a=Class.forName(类名);
    a.newInstance();//创建必须默认构造函数
      

  4.   

    看工厂模式去你会得到答案的public class F { public static Object getInstance(String className) {
    Object o = null;
    try {
    o = Class.forName(className).newInstance();
    } catch (InstantiationException e) {
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    return o;
    }
    }