package Java.YuRuguo.y1501;
import java.lang.reflect.Constructor;
class Person{
private String name;
private int age;
public Person(){
}
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void setname(String name){
this.name=name;
}
public String getname(){
return name;
}
public void setage(int age){
this.age=age;
}
public int getage(){
return age;
}
public String toString(){
return "姓名:"+name+",年龄:"+age;
}
}
public class InstanceDemo01{
public static void main(String args[])throws Exception{
Class<?> cla=Class.forName("Java.YuRuguo.y1501.Person");
Constructor<?> con[]=(Person)cla.getConstructors();
Person per=(Person)cla.newInstance();
per.setname("于汝国");
per.setage(22);
System.out.println(per);
Person per1=(Person)con[1].newInstance("MLDN",30);
System.out.println(per1);
}
}

解决方案 »

  1.   

    改成下面代码就可以了,不过你的包名不符合java命名规范,包名称应该是小写的import java.lang.reflect.Constructor;
    class Person{
    private String name;
    private int age;
    public Person(){
    }
    public Person(String name,int age){
    this.name=name;
    this.age=age;
    }
    public void setname(String name){
    this.name=name;
    }
    public String getname(){
    return name;
    }
    public void setage(int age){
    this.age=age;
    }
    public int getage(){
    return age;
    }
    public String toString(){
    return "姓名:"+name+",年龄:"+age;
    }
    }
    public class InstanceDemo01{
    public static void main(String args[])throws Exception{
    Class<?> cla=Class.forName("Java.YuRuguo.y1501.Person");
    Constructor<?> con[]=cla.getConstructors();
    Person per=(Person)cla.newInstance();
    per.setname("于汝国");
    per.setage(22);
    System.out.println(per);
    Person per1=(Person)con[1].newInstance("MLDN",30);
    System.out.println(per1);
    }
    }
      

  2.   

    就改了一行 Constructor<?> con[]=cla.getConstructors();