通过java的反射机制,可以在程序运行时访问已经装载到JVM中的java对象描述,实现访问、检测和修改描述java对象本身信息的功能。
-
1.访问和修改成员变量
public class TestField { public static void main(String[] args) { Example02 example = new Example02(); Class exampleClass = example.getClass(); //获得Example02的class反射对象 Field[] declaredFields = exampleClass.getDeclaredFields();//获取该类所有成员变量 for (int i = 0; i < declaredFields.length; i++) { Field field = declaredFields[i]; System.out.println("成员变量名称:"+field.getName()); Class fieldType = field.getType(); System.out.println("成员变量类型:"+fieldType); boolean flag=true; while (flag){ //如果成员变量的访问权限为private,则抛出异常,即不允许访问 try { flag=false; System.out.println("修改前的值:"+field.get(example)); //get()方法能获取各种类型成员变量的值 if (fieldType.equals(int.class)){ //判断成员变量类型是否是int型 System.out.println("利用setInt()方法修改成员变量的值"); field.setInt(example,150); //为int型成员变量赋值 } else if (fieldType.equals(float.class