凡是学习Java的人一般都会被告知Java中反射机制很重要,是核心,是基础。
但是,确实java反射的概念很抽象。
但是做到简单的理解还是可以的。
1、首先理解Class
都知道class是创建类的关键字, . class是放入内存区用以创建Class对象。
那么Class到底什么了?
它是对关键字class作用的描述,是一个类类。如果class Person{ }表示一个person类,那也能很好理解class Class()(这个意思差不多)。
做个比喻,小明这个人爱打篮球、不喜欢上课。那么class代表的就是小明、小明爱打篮球、小明不喜欢上课;Class代表的就是小明是个人。
2、反射的理解
正向:有了小明这个人,才有打篮球、不爱上课这些行为
反射:知道了打篮球、不爱上课这些行为,从而知道小明是个人;再因为小明是个人,从而明白小明打篮球、不爱学习
3、代码类比
List<Integer> list = new List<Integer>();
Class<Person> clazz = Person.class;
第一行代码中List<Integer>表示类型是内部元素是Integer的集合、list起的名字,new表示在内存区申请一个位置,List<Integer>()在new申请的内存中创建一个内部元素是Integer的集合。
第二行代码中Class<Person>表示类型是内部元素是Person的类类、clazz是名字, Person.class就相当从Person(小明这个人爱打篮球、不爱学习的行为)知道了Person.class(小明这个人)。