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

解决方案 »

  1.   

    主要是F.getinstance( temp ) 怎么写.判断下temp的内容,然后对应的类 new 一下就可以了.
      

  2.   

    如果A, B, C都有一个不带参数的构造函数,问题就比较简单:class F {
        static Object getInstance( String className ) {
                return Class.forName( className ).newInstance();
        }
    }如果他们没有不带参数的构造函数,那么F.getInstance()就必须为他们提供确省的参数.
      

  3.   

    public class F{
      public static Object getInstance(String className){
        if(className.equals("A")){
          return new A();
        }else if(className.equals("B")){
          return new B();
        }else if(className.equals("C")){
          return new C();
        }
          return null;
      }
    }
      

  4.   

    “用统一的途径”
    那ochinchina就是答案了
    但是forname比较费时,就几个选择的时候就是楼上的答案楼