反射中NoSuchMethodException的处理

今天刚学反射照着视频写了段代码总是出现这个异常
在这里插入图片描述
我原本的代码是这样写的

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;
	}
}

在这里插入图片描述

发布了17 篇原创文章 · 获赞 5 · 访问量 3360

猜你喜欢

转载自blog.csdn.net/weixin_42992842/article/details/104165895