本帖最后由 皮卫凯 于 2012-9-20 18:20 编辑
package Reflect;
class Person{
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString(){
return "["+this.name+" "+this.age+"]";
}
private String name;
private int age;
}
class hello{
public static void main(String[] args) throws Exception
{
Class<?> demo=null;
demo=Class.forName("Reflect.Person");
Person per=null;
per=(Person)demo.newInstance(); //创建一个Class对象 Person类的新实例
per.setName("Rollen");
per.setAge(20);
System.out.println(per);
}
}
Person中有个默认的无参构造函数,那为什么我自己定义个构造函数就会出错
public Person(String name, int age) {
this.age=age;
this.name=name;
}
|
报错:
java.lang.InstantiationException: Reflect.Person at java.lang.Class.newInstance0(Class.java:340) at java.lang.Class.newInstance(Class.java:308) at Reflect.hello.main(hello.java:39) Exception in thread "main" java.lang.NullPointerException at Reflect.hello.main(hello.java:47)
我利用的是Class实例化Person类的对象,
请问Person类中需要定义无参构造函数,还是有参构造函数,还是不用定义,自带有默认的隐式构造函数。
|