java,java反射
程序员文章站
2022-03-03 11:49:18
...
反射
作用:利用反射 获得类中的对象,还可以获得类中的属性,方法,构造器
因为反射是在**运行阶段**去反向解析 得到以上所有
如何通过反射获得一个类的对象
1.获得该类的Class对象
2.才能根据Class对象 获得构造器
获得方式 1.类名.class
2.Class.forName("包名.类名");
3.对象.getClass();
获得类的Class对象:Class s = Student.class;
1.通过反射获得所有构造器
**Constructor[] cs = s.getConstructors(); getConstructors只能获得public修饰的构造器
**Constructor[] cs = s.getDeclaredConstructors(); getDeclaredConstructors获得所有构造器,和访问权限无关
只获得公共构造器:
if(i.toString().contains("public")){
}
2.通过反射获得所有属性
Field[] fs = s.getDeclaredFields();
for (Field f : fs) {
System.out.println(f);
}
3.通过反射获得所有方法
Method[] ms = s.getMethods();
for (Method m : ms) {
System.out.println(m);
}
作用:利用反射 获得类中的对象,还可以获得类中的属性,方法,构造器
因为反射是在**运行阶段**去反向解析 得到以上所有
如何通过反射获得一个类的对象
1.获得该类的Class对象
2.才能根据Class对象 获得构造器
获得方式 1.类名.class
2.Class.forName("包名.类名");
3.对象.getClass();
获得类的Class对象:Class s = Student.class;
1.通过反射获得所有构造器
**Constructor[] cs = s.getConstructors(); getConstructors只能获得public修饰的构造器
**Constructor[] cs = s.getDeclaredConstructors(); getDeclaredConstructors获得所有构造器,和访问权限无关
只获得公共构造器:
if(i.toString().contains("public")){
}
2.通过反射获得所有属性
Field[] fs = s.getDeclaredFields();
for (Field f : fs) {
System.out.println(f);
}
3.通过反射获得所有方法
Method[] ms = s.getMethods();
for (Method m : ms) {
System.out.println(m);
}