java反射应用 一、通过反射获取Java类对象的三种方式 public Class Student extends MyStudent{ private String name; private String sex; private int age; } 1.对象获取 Student stu = new Student(); Class cls = stu.getClass(); 2.类名获取 Class cls = Student.class(); 3.Class类的静态方法forName(字符串的类名)包名.类名 Class cls = Class.forName("com.elink.entity.Student"); 二、通过反射对象获取对象属性方法说明 1、getDeclaredFields() :该方法能获取到本类的所有属性,包括private,protected和public,但不能获取到继承的父类的属性。 2、getFields():既能获取本类的属性也能得到父类的属性,但仅仅能获取public修饰的字段。 3、如果需要获取继承类的对象属性方法如下: Class suerClass = cls.getSuperclass(); Field[] suerClassFields = suerClass.getDeclaredFields(); 三、获取反射对象某个属性的值 for (int j = 0; j <suerClassFields.length ; j++) { if("name".equals(suerClassFields[j].getName())){ //对所有属性设置访问权限 当类中的成员变量为private时 必须设置此项 AccessibleObject.setAccessible(fields, true); //对单个属性设置访问权限 suerClassFields[j].setAccessible(true); String name = suerClassFields[j].get(cls); } }