反射 reflect
反射就是在程序运行时通过class类的对象获取该对象所代表的信息及操作。
为什么要用反射:
就是把对象的集合转二维数组,把对象转为数组。
常用反射获取方法有三种;
//创一个类:User
//第一种
Class c1=User.class;
User user=new User(1,"");
//第二种
Class c2=User.getClass();
//第三种
Class c3=Class.forName("全类名");
//获取基本数据类型
Class c4=Integer.TYPE;
//封装类
Class c5=Integer.Class;
//通过子类的Class对象
Class c6=Object.class;
Class c7=c2.getSuperclass();
//获取字段
//获取指定字段
c2.getFiled("");
c2.getDeclaredFiled("");
//获取全部字段
c2.getFileds();
c2.getDeclaredFileds();
//获取方法
//获取指定的
c2.getMethod("");
c2.getDeclaredMethod("");
//获取全部
c2.getMethods();
c2.getDeclaredMethods();
//带Declared的是获取当前类中声明的,即私有也可以获取,没有Declared可以获取父类继承过来的,但私有的获取不到。