- 通过反射,可以使用Class对象的getFields()或者getField()方法来访问Class对象里的成员成员变量。
- 以下为代码,具体的讲解穿插在代码中
package Chapter_4; import java.lang.reflect.Field; class Person{ public int a = 2; private String name; private int age; public String toString(){ return "Person[name:" + name + ",age:" + age + "]"; } } public class FieldTest { public static void main(String args[]) throws Exception{ Person p = new Person(); Class<Person> personClazz = Person.class; // 获得Person类的Class对象 Field nameField = personClazz.getDeclaredField("name"); // 通过Class对象来获得名字为name的成员成员变量 nameField.setAccessible(true); // 设置通过反射访问该Field时取消访问权限的检查 nameField.set(p, "Yeeku.H.Lee"); // 调用set方法将对象p的name成员变量设置为Yeeku.H.Lee Field ageField = personClazz.getDeclaredField("age"); ageField.setAccessible(true); ageField.setInt(p ,30); System.out.println(p); } } //运行程序,可以看到输出 //Person[name:Yeeku.H.Lee,age:30]
java反射(5)访问属性值
最新推荐文章于 2023-05-19 18:12:55 发布