Java中最强大的技术之一 反射 获取Class类
1、反射概述
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;
对于任意一个对象,都能够调用它的任意一个方法和属性;
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
要想解剖一个类,必须先要获取到该类的字节码文件对象。
而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象
2、类的加载过程
Class类的实例表示正在运行的Java应用程序中的类和接口
每个类只会产生一个Class对象,在类加载的时候自动创建
3、获取Class类的三种方式
3.1 通过 class.forname()来获取Class对象
Class clazz = Class.forName("com.mashibing.entity.Emp");
System.out.println(clazz.getPackage());
System.out.println(clazz.getName());
System.out.println(clazz.getSimpleName());
System.out.println(clazz.getCanonicalName());
3.2 通过类名.class来获取Class对象
Class<Emp> clazz = Emp.class;
System.out.println(clazz.getPackage());
System.out.println(clazz.getName());
System.out.println(clazz.getSimpleName());
System.out.println(clazz.getCanonicalName());
3.3 通过对象的getClass()来获取Class对象
Class clazz = new Emp().getClass();
System.out.println(clazz.getPackage());
System.out.println(clazz.getName());
System.out.println(clazz.getSimpleName());
System.out.println(clazz.getCanonicalName());
3.4如果是一个基本数据类型,那么可以通过Type的方式来获取Class对象
Class type = Integer.TYPE;
System.out.println(type.getName());
System.out.println(type.getCanonicalName());