Class clazz = Class.forName(ClassNameString);

解决方案 »

  1.   

    需要判断抛出一些异常吧
    如果转换成其他类型呢?
    比如说转换成String型变量名或者panel型变量名呢?
    道理相同吗?
    谢谢
      

  2.   

    道理相同!
    需要判断抛出ClassNotFoundException异常!自己写段代码试试看,不就清楚了!
      

  3.   

    转换成我自己由JPanel派生的CSJPanel类型的代码我没有写出来。
    哪位大侠能写段稍微详细点的代码告诉俺?
    而且转换后的那个变量怎么调用?调用效果是什么?
    谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢
    知道了马上给分。
      

  4.   

    Class clazz = Class.forName(ClassNameString);
    clazz.newInstance();
      

  5.   


    不错,楼上的方法可以实现字串变类名,但是注意不能转成变量名。另外,你clazz.newInstance()以后,得到的只是一个Object的实例,不是abc.def.gh.Ijklmn的实例,所以有一些方法你没法用。所以你要造型,但是如果你不知道这个类的真正名称(比如这个名称是传来的),这样你也不太好造型了,关于这方面的资料,你可以看一下关于反射(java.lang.reflect)的API文档,应该对你有帮助的。以上我一点看法,未经确认,有不对的地方,请指正。
      

  6.   

    这样就可以了:Class c1 = null;
    try { c1 = Class.forName("YourClassName"); }
    catch (Exception ex) { }Object obj = null;
    YourClassName your = null;try {
    obj = c1.newInstance();
    your = (YourClassName)PortableRemoteObject.narrow(obj, YourClassName.class);
    }
    catch (Exception ex) { }然后你就可以使用your了。