一.什么是反射
反射是一种设计思想,怎样的思想呢?
首先我们先说java是一种面向对象的语言,由此衍生出"万物皆对象"的说法.我们把一辆车看成一个对象,那么我们先定义一个Car类,然后实例化一个car对象,这种是比较形象的使用方式.那既然"万物皆对象",我们定义的Car类是不是一种对象呢?是的,反射就是把Car类看成是一个对象,先定义了一个Class类,Car这个类就是Class的一个具体实例.
我们在程序设计中定义的所有类和接口都是这个Class类的实例,这种思想和概念就是反射.
二.反射有什么用
通过反射可以在程序运行时获得类和接口中定义的所有东西,包括字段,构造器,方法
通过反射可以在程序运行时创建对象,执行方法,修改字段
注意:这里强调了"运行时",Class类的实例表示正在运行的Java应用程序中的类和接口,而我们正是通过对Class实例的操作来完成相应功能的.
三.反射怎么用
首先我们要得到Class的实例,有三种方式:
1.Class.forName("全限定名")
2.类.class
3.对象.getClass();
得到Class实例后我们就可以根据Class的API来使用其方法