反射
reflect
为什么要用反射?
把对象的集合转为二维数组,其实是把对象转为数组
把任意类型的对象转为其属性的数组
什么是反射?
在程序运行时通过Class类的对象获取该对象所代表的类的信息,以及操作。
获取class的对象
1.直接使用类,使用类名。class无论哪种方式,拿到的都是同一个对象
Class c1 = User.class;
2.类所创建的对象getClass方法
Class c2 = user.getClass();
3.最常用的,Class的静态方法
Class c3 = Class.forName(“全类名”);
4.反射中一些基本的使用方法
getField("");//获取单一的属性(公有)
getFields();//获取类中所有属性(公有)
getDeclaredFields();//获取类中所有属性(包括私有)
getDeclaredField("");//获取类中私有属性
getMethod("");//获取类中共有方法
getMethods();//获取类中所有公有方法
一些基本使用情况。
反射的作业比较
这两种用法最大的区别就是,用反射可以直接获取不同类型对象,然后给值。而单一的选定对象就很局限,因为对象千千万。