反射机制(也叫”内省”): 在编译时不需要知道以后调用自己的那个类的信息(或者说不关心谁调用自己)
因为在运行时,会自动获取到调用自己那个类的信息,这就叫反射机制 (说白了 , 所谓的反射机制,就是 ” 谁调用自己,谁就得把它的信息给我 ”)
反射机制主要用于java ee的各种框架 在各个框架中 都利用了反射机制 所以我们在调用它们的时候 就不必关心它们的细节 因为它们会自动得到我们用来调用它们的那个类的信息
这种”得到掉用自己类的信息”方法 , 主要是利用了Class这个类:
Class类只关心运行时的.class的信息, 它没有构造方法, 通过JVM自动加载.
基本类型数据和引用类型数据都有Class对象..
所谓的Class对象,就是通过 .class 文件获得了一个该类的描述
获取Class对象,也就等于得到了 .class 所对应的这个类的信息
利用Class类,来获取描述的方式有4种
1, xxx.getClass() 获取xxx类型的描述
2,Class.forName (String str) 此时str必须是带有包结构的全路径
3, int.class 获取int这个基本类型的描述
4, Integer.TYPE 获取Integer这个包装类型的描述 返回int
如果是Integer.class 返回Integer
具体使用方式:
1,
A a = new A();
Class c = a.getClass();
c.getName …..
2,
Class c = Class.forName(x.xx.xxx.A);
C.getName…. // 如果只是forName 前面没有c接收 意思就是加载类
// 类只会被加载一次 如果前面已经forName过 之后再有new也不会被加载了
3,
Class c = A.class; // 这种方法主要用在只知道类名,不能看到类的细节的时候
在程序运行时,JVM会自动检查是否已经获得了关于类的描述
如果true 不操作
如果false 会自动查找前面介绍的方法去获得相关描述
因为在运行时,会自动获取到调用自己那个类的信息,这就叫反射机制 (说白了 , 所谓的反射机制,就是 ” 谁调用自己,谁就得把它的信息给我 ”)
反射机制主要用于java ee的各种框架 在各个框架中 都利用了反射机制 所以我们在调用它们的时候 就不必关心它们的细节 因为它们会自动得到我们用来调用它们的那个类的信息
这种”得到掉用自己类的信息”方法 , 主要是利用了Class这个类:
Class类只关心运行时的.class的信息, 它没有构造方法, 通过JVM自动加载.
基本类型数据和引用类型数据都有Class对象..
所谓的Class对象,就是通过 .class 文件获得了一个该类的描述
获取Class对象,也就等于得到了 .class 所对应的这个类的信息
利用Class类,来获取描述的方式有4种
1, xxx.getClass() 获取xxx类型的描述
2,Class.forName (String str) 此时str必须是带有包结构的全路径
3, int.class 获取int这个基本类型的描述
4, Integer.TYPE 获取Integer这个包装类型的描述 返回int
如果是Integer.class 返回Integer
具体使用方式:
1,
A a = new A();
Class c = a.getClass();
c.getName …..
2,
Class c = Class.forName(x.xx.xxx.A);
C.getName…. // 如果只是forName 前面没有c接收 意思就是加载类
// 类只会被加载一次 如果前面已经forName过 之后再有new也不会被加载了
3,
Class c = A.class; // 这种方法主要用在只知道类名,不能看到类的细节的时候
在程序运行时,JVM会自动检查是否已经获得了关于类的描述
如果true 不操作
如果false 会自动查找前面介绍的方法去获得相关描述