什么是反射?
在程序运行时通过Class类的对象获取该对象所代表的类的信息,以及操作。
为什么要用反射?
把对象的集合转为二维数组,其实是把对象转为数组
把任意类型的对象转为其属性的数组
怎么写?
获取class的对象
1.直接使用类,使用类名。class无论哪种方式,拿到的都是同一个对象
2.类所创建的对象getClass方法
3.最常用的,Class的静态方法
反射操作构造方法
必须有无参构造
newlnstance()方法,只能通过空参的构造方法创建对象
getConstructor(Class…parameterTypes)方法,方法接受一个可变参数,可以根据传入的类型来匹配对应的构造方法。
步骤:
1.获取字节码对象
2.获取字段