学习内容

使用反射调用属性


通过Class对象的getFields()|getDeclaredFields()或getField()|getDeclaredField()方法可以获取该类所有包括的全部属性或指定的属性

一、Field类用于猎取类中的属性的方法(一)getXxx(Object obj)

获取obj对象该Field的属性值,此处Xxx对应8个基本类型。

(二)setXxx(Object obj,Xxx val)

将obj对象的该Field设置为val值。此处Xxx对应8个基本类型。

二、测试1234567891011121314public static void test5()throws Exception{Class<Person> personClass = Person.class;Person person = personClass.newInstance();//得到setName方法Method method = personClass.getDeclaredMethod("setName", String.class);//调用访问权限检查if(!method.isAccessible()){method.setAccessible(true);}//调用setName,为name赋值Object object = method.invoke(person, "wangwu");System.out.println(person);System.out.println(object);}