在类中不写构造器为什么通过反射拿不到空参构造

public class relJava1 {
    
    

    public static void main(String[] args) throws Exception {
    
    
        Class<Person> person = Person.class;

        Constructor<Person> con = person.getConstructor();
        System.out.println(con);
    }
}
class Person{
    
    

}

我们知道在类中不写任何构造器时候它会给我们自动创建一个空参构造器,但是我们现在通过反射去拿这个空参构造器为什么报以下错误:
在这里插入图片描述
这是因为我们通过person.getConstructor();这个方式去获取构造器是获取public修饰的构造器,而我们自动创建的构造器是 确省 的所以获取不到,所以需要我们在Person类中去创建一个public的空参构造器即可反射获取。

class Person{
    
    
	    public Person() {
    
    
	    
	    }
}

执行结果:
在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_44742328/article/details/120484447