Exception in thread "main" java.lang.NoSuchMethodException: constructor.Person.<init>(java.lang.String, int)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.getConstructor(Unknown Source)
at constructor.GetConstructorDemo.getOne(GetConstructorDemo.java:38)
at constructor.GetConstructorDemo.main(GetConstructorDemo.java:24)
表示在constructor.Person这个类中找不到构造器Person(java.lang.String, int)
出现问题的代码为
Class<Person> clz = Person.class;
Constructor<Person> con = clz.getConstructor(String.class,int.class);
原因是getConstructor()方法只能找到public修饰的构造器,而在Person类中该构造器我是用private修饰的,所以找不到该构造器
解决方法:
第一种:将构造器改为public修饰
第二种:使用getDeclaredConstructor(String.class,int.class)方法