public static void main(String[] args) throws Exception {
ReflectPoint reflect = new ReflectPoint(3, 5);
String propertyName = "x";
PropertyDescriptor propertyDescript = new PropertyDescriptor(propertyName, reflect.getClass());
//获得get方法
Method methodGet = getProperty(reflect, propertyName);
Object retval = methodGet.invoke(reflect);
System.out.println(retval);
//获得set方法
Method methodWrite= propertyDescript.getWriteMethod();
methodWrite.invoke(reflect,7);
System.out.println(methodGet.invoke(reflect));
}
BeanUtil 工具使用
要用的jar包:
commons-beanutils
commons-logging
使用:
BeanUtils.setProperty(reflect, "x", "9");
System.out.println(BeanUtils.getProperty(reflect, propertyName));
//它们之间的差别BeanUtils传递参数类型是String类型,而PropertyUtils传递参数类型是和java类里的类型相同可以作用于Map里
PropertyUtils.setProperty(reflect, "x", 11);
System.out.println(PropertyUtils.getProperty(reflect, propertyName));