反射的介绍
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 对象产生
三种形式罕用第三种,第一种对象都有了还要反射干什么。第二种须要导入类的包,依赖太强,不导包就抛编译谬误。个别都第三种,一个字符串能够传入也可写在配置文件中等多种办法
通过反射获取构造方法并应用