今天刚学反射照着视频写了段代码总是出现这个异常
我原本的代码是这样写的
package day28_反射;
import java.lang.reflect.Constructor;
public class class01_反射的体现 {
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void main(String[] args) throws Exception {
//未使用反射时调用成员属性和方法
//在该类的外部不能调用其内部私有结构
Person p1=new Person("小王", 26);
p1.age=25;
System.out.println(p1.toString());
//使用反射后调用成员属性和方法
Class clazz=Person.class;
Constructor con=clazz.getConstructor(String.class,int.class);
//创建对象
Object obj=con.newInstance("老李",56);
Person p=(Person)obj;
System.out.println(p.toString());
}
}
class Person{
String name;
int age;
Person(String name,int age){
this.name=name;
this.age=age;
}
@Override
public String toString() {
return name+":"+age;
}
}
后来发现把构造方法声明为public就能解决了
class Person{
String name;
int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
@Override
public String toString() {
return name+":"+age;
}
}