定义一个标准的JavaBean,名叫Person,包含属性name、age。
使用反射的方式创建一个实例、调用构造函数初始化name、age,使用反射方式调用setName方法对名称进行设置,不使用setAge方法直接使用反射方式对age赋值。
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Test8 {
/**
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
person p =new person();
Class c = p.getClass();
//对name和age进行初始化
p.Person("张三", 15);
//调用setName方法
Method m = c.getMethod("setName",String.class);
//将"李四"传递个name
m.invoke(p, "李四");
//获取person类中成员变量age
Field f = c.getField("age");
//将30赋给age
f.setInt(p,30);
//输出改变后的名字和年龄
System.out.println("\n改变后:\n"+p.getName()+":"+p.getAge());
System.out.println();
System.out.println();
}
}
class person{
public String name;
public int age;
//进行初始化
public void Person(String name,int i){
this.name=name;
this.age=i;
System.out.println(name+":"+age);
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
}
|
|