什么叫反射
Java中我们创建对象一般都是用“new”这个关键字的,例如1
2Person p = new Person();
p.setName("Ervin");
反射则是一开始不知道要初始化的对象是什么,所以没办法new出一个对象,这时候就需要用到反射,例如我们使用第三方SDK的时候有可能没有提供api,只能通过反射去获取类中的方法等。按照上面生成对象的例子,使用反射是这样的
1 | Class cls = Class.forName("com.ervin.entity.Person"); |
直接new对象是静态模式,在代码编译前就知道需要生成什么对象;反射是在运行时才知道要生成什么类,是动态的