反射的介绍
JAVA反射机制是在运行状态中,对于任意一个类,都可能晓得这个类的所有属性和办法;对于任意一个对象,都可能调用它的任意一个办法和属性;这种动静获取的信息以及动静调用对象的办法的性能称为java语言的反射机制。
要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖应用的就是Class类中的办法.所以先要获取到每一个字节码文件对应的Class类型的对象.
反射的应用
获取Class对象的三种形式
1.Object--->getClass
2.任何数据类型包含根本数据类型都有一个动态的class属性
3.通过Class类的静态方法:forName(String className)(罕用)
package com.cy;public class StudentTest { public static void main(String[] args) { //getClass()形式 Student student=new Student(); Class stuClass=student.getClass(); System.out.println(stuClass.getName()); //动态的class属性形式 Class stuClass2=Student.class; System.out.println(stuClass2); System.out.println(stuClass==stuClass2); //3.通过Class类的静态方法:forName(String className)(罕用) try { Class stuClass3=Class.forName("com.cy.Student"); System.out.println(stuClass3); System.out.println(stuClass==stuClass3); } catch (ClassNotFoundException e) { e.printStackTrace(); } }}class Student{}
留神:在运行期间,一个类,只有一个Class对象产生
三种形式罕用第三种,第一种对象都有了还要反射干什么。第二种须要导入类的包,依赖太强,不导包就抛编译谬误。个别都第三种,一个字符串能够传入也可写在配置文件中等多种办法