一个类:
Abc.java主进程:
String a = "Abc";
Class c = Class.forName(a).newInstanse();这里,我不打算使用那些反射方法机制调用实例方法,希望能够获得真正的类实例,类似:
Class.forName(a) c = Class.forName(a).newInstanse();(这个是错误的语句,只是想表达想法)
or
Abc c = Class.forName(a).newInstanse();
可是有什么办法能在不知道具体类型的情况下,获得前面的类名 Abc 呢???

解决方案 »

  1.   

    forName不就是通过类名来加载的吗?
      

  2.   

    可是这个返回的是
    Class实例,
    我想要的是真正的
    Abc实例好比如是:
    String a = "Abc";
    Class c = Class.forName(a).newInstanse();
    得到 Class类型的c实例后,将c强制转换成Abc的实例,
    可是如何根据 String a= "Abc" 得到 Abc.java这个类名呢???
      

  3.   

    Object obj = Class.forName(a).newInstanse();//返回的是一个Object, 不是Classif(o instanceof Abc)
    obj = (Abc) obj ;
      

  4.   

    哦,有点思路了
    再问下如果
    在初始化的时候打算把20个  *.java  类文件,以上面的方式实例化,全部放入集合,
    有没有比if优化一点的方法???
    20个if判断不小啊