问题描述
Person 是带有构造函数的抽象类:
/**
* default Person constructor with no attribute
*/
public Person() {}
public Person(String firstName,String lastName,String ssn,Address address) {
this.firstName = firstName;
this.lastName = lastName;
this.ssn = ssn;
this.address = address;
}
地址构造函数:
public Address() {
}
public Address(int streetNum,String streetName,String city,String zip,String state) {
this.streetNum = streetNum;
this.streetName = streetName;
this.city = city;
this.zip = zip;
this.state = state;
}
这是我迄今为止在 ReflectionTest 类中尝试过的,但出现以下错误。不知道为什么会导致该错误以及如何修复它?
java.lang.InstantiationException
at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at ReflectionTest.main(ReflectionTest.java:55)
try {
Constructor<Person> personConstructor = Person.class.getConstructor(String.class,String.class,Address.class);
Constructor<Address> addressConstructor = Address.class.getConstructor(int.class,String.class);
Address a2 = addressConstructor.newInstance(11,"Main Street","SJ","99990","CA");
Person p2 = personConstructor.newInstance("Victor","Nguyen","001",a2);
Address a3 = addressConstructor.newInstance(11,"CA");
Person p3 = personConstructor.newInstance("Tina","Vang","002",a3);
Address a4 = addressConstructor.newInstance(12,"99991","CA");
Person p4 = personConstructor.newInstance("Max","003",a4);
p2.setFirstName("N");
p2.setLastName("L");
p2.setAge(22);
System.out.println("Person 1: " + p2.toString());
System.out.println("Person 2: " + p3.toString());
System.out.println("Person 3: " + p4.toString());
} catch (illegalaccessexception | NoSuchMethodException | InvocationTargetException | InstantiationException e) {
e.printstacktrace();
}
提前致谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)