跟王老师学反射(七)使用反射调用属性
学习内容
使用反射调用属性
通过Class对象的getFields()|getDeclaredFields()或getField()|getDeclaredField()方法可以获取该类所有包括的全部属性或指定的属性
一、Field类用于猎取类中的属性的方法
(一)getXxx(Object obj)
获取obj对象该Field的属性值,此处Xxx对应8个基本类型。
(二)setXxx(Object obj,Xxx val)
将obj对象的该Field设置为val值。此处Xxx对应8个基本类型。
二、测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public 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);
}
|