java反射机制
1.示例
- 设计类 new+构造方法() eg:
- UserDao userdao = new UserDao();
- 弊端:
- 不灵活,在程序中直接写死
- web.xml
- 底层:
- 解析xml
- 读取到类的地址
- 根据类的地址,通过反射机制
- 创建类的对象
- 底层:
- class.forName(“com.mysql.cj.jdbc.Dreiver”)
2.描述
- 上述应用场景:
- 配置servlet,过滤器… class.forName
- 只需要类的地址就可以操作类
- 概念:
- 在运行状态中,对于一个类,就可以获取类中的所有信息
- 对于一个对象,可以调用类的所有方法和属性
- 作用:
- 动态获取类的信息
- 每当使用一个类时,类加载器将字节码信息读取到内存中,并为每一个类创建一个class类的对象
- 通过class对象就可以获取类中的信息
3.应用
- 使用反射前提就是获得class对象
- 类名.class
- 创建对象使用getClass();
- User user = new User();
- Class classs = user.getClass();
- class.forName() 需要抛异常
- 根据类的地址,加载类的信息到内存中
- 创建class对象,通过class对象动态获得信息