已经获得了类的名称,是string类型的,例如myclass   
  string   myclassname="myclass";   
  如何生成myclass的实例   
  myclass   mc=new   myclassname();     这样不可以啊
同样的  如果有了 String 类型的方法名称  如getName  如何调用呢  

解决方案 »

  1.   

    String name = "java.lang.String";String obj = (String)Class.forName(name).newInstance;调用方法:
    Method method = Class.forName(name).getMethod("length");
    int length = (Integer)method.invoke(obj);类似于这样
      

  2.   

    String str = "com.oyp.test.entity.User";
    try {
    Class c = Class.forName(str);
    User u = (User) c.newInstance();
    } catch (Exception e) {
    e.printStackTrace();
    }建议lz看看反射
      

  3.   

    Class.forName(myclassname).newInstance();package test;import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;public class TT { public static void main(String[] args) {
    String myclassname="TT";
    TT tt = new TT();
    Class cl = TT.class;
    Method method = null;
    try {
    method = cl.getDeclaredMethod("say", String.class);
    method.invoke(tt, "sss");
    } catch (SecurityException e) {
    e.printStackTrace();
    } catch (NoSuchMethodException e) {
    e.printStackTrace();
    } catch (IllegalArgumentException e) {
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    } catch (InvocationTargetException e) {
    e.printStackTrace();
    }
    }

    public void say(String str){
    System.out.println(str);
    }
    }
      

  4.   

    大家好呀  这个问题呢   同样的 如果有了 String 类型的方法名称 如getName 如何调用呢