1.反射的好处是什么?
反射提供给我们一个可以在运行期间动态地获取不同类对象的不同方法的方法,避免了当我们需要获取不同需求的时候去频繁地修改代码。将这些类对象和方法信息写入配置文件,只需要修改配置文件就可以完成不同的需求,是我们的程序更灵活有扩展性。
2.什么时候会加载Class类对象?
[1]创建对象
[2]加载子类会先加载它的父类,网上类推
[3]当运行的的测试类中有main方法的时候,测试类也会被加载
[4]调用一些静态的成员方法的时候,该成员方法所在的类对象会加载
[5]获取类对象产生的字节码文件文件会被加载,承位Class对象
3.获取Class类对象有几种方式?
三种:
[1]类名.Class
[2]对象.getClass ->类对象已存在的情况下
[3]Class.forname("类的全路径") -> src下的 包名.包名....类名
4.为什么反射可以忽略泛型检查?
泛型的检查是由编译器来完成的,当我们还在编写阶段的时候,编译器会对泛型进行检查,而反射跳过了编写阶段直接到了获取类对象阶段,也就不会被编译器检查,称编译擦除。 |