class Newclass{}
String a="Newclass";
怎么把a 里面的字符串读出来并且NEW出个对象呢? 急 在线等!!!

解决方案 »

  1.   

    String a="Newclass"; 
    Object obj=Class.forName(a).newInstance();使用反射 。
      

  2.   

    try {
    String s = "newclass";
            Class.forName("Newclass");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
      

  3.   

    import java.util.logging.Level;
    import java.util.logging.Logger;class Newclass {
    }public class Test {    public static void main(String[] args) {
            String a = "Newclass";
            try {
                Class className = Class.forName(a);
                Object obj = className.newInstance();
                System.out.println(obj);
            } catch (ClassNotFoundException ex) {
            } catch (InstantiationException ex) {
            } catch (IllegalAccessException ex) {
            }    }
    }
      

  4.   

    如果 a中有构造方法呢?怎么办?~~· ZangXT 大哥,你能说清楚点告诉小弟吗?怎么初始化属性?
      

  5.   

    去看Class类的方法
    getConstructors();
    getConstructor(
    得到你需要的Constructor,再newInstance结合文档,使用不难.
      

  6.   

    ZangXT 大哥,你就写个类 里面有两个简单类型的属性,写出来看下吧 大家伙好学习学习!!!! 我马上结贴~~·
      

  7.   

    类似的例子很多
    http://www.javaeye.com/topic/140718
      

  8.   

    public class Test {
    private String className = "MyClass";
    /**
     * 默认构造方法
     */
    public MyClass getDefaultConstruct() {
    MyClass myClass = null;
    try {
    Object o = Class.forName(className).newInstance();
    myClass = (MyClass) o;
    } catch (Exception e) {
    e.printStackTrace();
    }
    return myClass;
    } /**
     * 带参数的构造方法
     */
    private MyClass getWithParams() {
    // 至少要知道构造方法的参数数量、类型,要不然你没办法传数据
    Object[] params = new Object[] { "myname", 18 };
    MyClass myClass = null;
    try {
    Class clazz = Class.forName(className);
    Constructor[] constructors = clazz.getDeclaredConstructors();
    for (Constructor constructor : constructors) {
    // 找出带参数构造方法
    if (constructor.getParameterTypes().length > 0) {
    myClass = (MyClass) constructor.newInstance(params);
    }
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return myClass; } public static void main(String[] args) {
    Test test = new Test();
    // java反射机制的应用。
    test.getDefaultConstruct();
    test.getWithParams(); // 控制台输出:构造方法调用成功!OK
    // MyClass.MyClass()
    // MyClass.MyClass(String name, Integer age): myname , 18 }}class MyClass {
    String name;
    Integer age; public MyClass() {
    System.out.println("MyClass.MyClass()");
    } public MyClass(String name, Integer age) {
    super();
    this.name = name;
    this.age = age;
    System.out.println("MyClass.MyClass(String name, Integer age): "
    + this.name + " , " + this.age);
    }}