1、定义一个标准的JavaBean,名叫Person,包含属性name、age。使用反射的方式创建一个实例、调用构造函数初始化name、age,使用反射方式调用setName方法对名称进行设置,不使用setAge方法直接使用反射方式对age赋值。2、写一个方法,public void setProperty(Object obj, String propertyName, Object value){},此方法可将obj对象中名为propertyName的属性的值设置为value。
调试欢乐多
import java.lang.reflect.*;
public class Person {
private String name;
private int 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;
}
Person(){
name="";
age=0;
}
public static void main(String[] arg){
String name="fish";
int age=20;
Person p;
Class<?> c;
try {
c = Class.forName("Person");
p=(Person) c.newInstance();
Method[] method=c.getMethods();
for(Method m:method){
if(m.toString().equals("setName"))m.invoke(p, name);
if(m.toString().equals("setAge"))m.invoke(p, age);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
}
}