反射
获取class对象的三种方式
①Class.forName(“全类名”);(源代码阶段使用)
②类名.class(加载阶段使用)
③对象.getClass();(运行阶段使用)
package myflect;
public class MyFlectDemo1 {
public static void main(String[] args) throws ClassNotFoundException {
/*
* 获取Class对象的三种方式
*①Class.forName("全类名");(源代码阶段使用)
②类名.class(加载阶段使用)
③对象.getClass();(运行阶段使用)
*
* */
//1.第一种方式
//全类名:包名+类名 myflect.Student
//最为常用的
Class clazz = Class.forName("myflect.Student");
//2.第二种方式
//一般当做参数进行传递
Class clazz2 = Student.class;
//3.第三种方式
//当我们已经有了这个类的对象时,才可以使用
Student s = new Student();
Class clazz3 = s.getClass();
System.out.println(clazz==clazz2);
System.out.println(clazz2==clazz3);
}
}
利用反射获取构造方法
利用反射获取字段(成员变量)
利用反射获取成员方法
反射的作用
①获取一个类里面所有的信息,获取到了之后,再执行其他的业务逻辑
②结合配置文件,动态的创建对象并调用方法
作用
①获取一个类里面所有的信息,获取到了之后,再执行其他的业务逻辑
②结合配置文件,动态的创建对象并调用方法